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家庭作业,我只是使用了标签,因为实践测试不是标签,问题涉及的是作业。我正在为期末考试学习,只想得到一个解释。谢谢你的回答。