gpt4 book ai didi

混淆 C 指针行为

转载 作者:太空狗 更新时间:2023-10-29 16:11:35 25 4
gpt4 key购买 nike

<分区>

#include <stdio.h>

void printa(char *a[])
{
for (int i = 0; i < 3; ++i) {
printf("%s\n", *a);
a++;
}
}

int main(void)
{
char *a[] = {"The first", "The second", "The third"};

for (int i = 0; i < 3; ++i) {
printf("%s\n", *a);
a++; // error: cannot increment value of type 'char *[3]'
}

printa(a); //OK

return 0;
}

因此,我的问题是为什么 main 函数中的代码 a++ 导致编译错误(错误:无法增加类型 'char *[3]' 的值)。但是,如果我将指针数组 a 传递给函数 printa 并在该指针上调用 a++,它将完美运行。

谢谢,

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