gpt4 book ai didi

c++ - 使用字符指针测试条件

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:07:32 24 4
gpt4 key购买 nike

int main()
{
char *p,c;
for(p="Hello World";c=*p;++p)
{
printf("%c",c);
}
}

在上面的代码中,我知道++p 会使指针 'p' 指向“Hello World”中的下一个字符。我也知道在 C 或 C++ 中没有对数组执行边界检查。该程序的输出是“Hello World”。我如何能够使用

测试条件
c=*p;

'c=*p'返回什么。据我所知,当'++p'到达'hello world'的末尾时,指针'p'应该指向一些垃圾值并且循环应该打印一些垃圾值。

最佳答案

c=*p; 不返回任何内容,它是一个表达式。 for 循环在赋值后计算 c 的值。

when '++p' reaches the end of the 'hello world', pointer 'p' should point to some garbage value

不是真的。在到达结尾之前,它到达了空终止符 - '\0'。即 0。分配给 c 并将中断条件评估为 false。因此,循环在超出范围之前结束。

关于c++ - 使用字符指针测试条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11228512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com