Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C实践测试int和Char数组_C - Fatal编程技术网

C实践测试int和Char数组

C实践测试int和Char数组,c,C,我是在一次练习测试中被问到这个问题的,但没有给出答案。我没有办法测试代码,但它把我弄糊涂了。你能不能帮我,不仅要理解答案,还要理解原因 int foo() { int a = 1; char b[] = "zapples"; a = *(b + 1); if (a == 'a') return 1; else return 0; } What does foo return? ____ 他们教过你C指针是怎么工作的吗 我不会给你一个直截了当的答案,但请

我是在一次练习测试中被问到这个问题的,但没有给出答案。我没有办法测试代码,但它把我弄糊涂了。你能不能帮我,不仅要理解答案,还要理解原因

int foo() {
    int a = 1;
    char b[] = "zapples";
    a = *(b + 1);
    if (a == 'a') return 1;
    else return 0;
}
What does foo return? ____ 

他们教过你C指针是怎么工作的吗

我不会给你一个直截了当的答案,但请想想:

b
的起始地址为字符串“zapples”。这意味着
b[0]
指向“z”。另一种表示法是
*(b+0)
,即“地址
b
处包含的值,偏移量
0
)。根据此信息,
*(b+1)
的值是多少

这应该足以解决该练习。

它将返回1


a=*(b+1)
是最重要的一行。它将b作为指向数组中第一个元素的指针,并添加一个元素以指向第二个元素。然后取消引用该行,以便将该地址“a”处的值分配给变量
a

您不明白什么?它返回什么。具体来说,行
a=*(b+1);
这是家庭作业,尽量不要给出答案:)对不起,我只是认为寻求帮助意味着他们已经尽了最大的努力。实际上,这不是Nessarly家庭作业,我只是使用了标签,因为实践测试不是标签,问题涉及的是作业。我正在为期末考试学习,只想得到一个解释。谢谢你的回答。