gpt4 book ai didi

任何人都可以详细解释以下 c 中的指针程序吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:57:44 25 4
gpt4 key购买 nike

void main(){
char a[2][30]={"Don't walk in front of me..", "I am not follow"};
printf("%c%c", *(a[0]+9), *(*(a+0)+5));
}

程序的输出是

k

最佳答案

一些基于示例的解释...

可以通过两种方式访问​​ c 数组:

作为数组:

char a[10] = "0123456789";
printf("%c", a[5]); // prints "5"

作为指针:

char a[10] = "0123456789";
printf("%c", *(a + 5)); // prints "5"

在第二个示例中,我们只是将 a 取消引用为指向字符串开头加上 5 的指针。

这也可以用于 2d、3d 等……数组:

char a[2][10] = {"012", "abc"};
printf("%c", *(*(a + 0)+1)); // prints "1"
printf("%c", *(*(a + 1)+1)); // prints "b"

您可以混合使用这两种方法:

printf("%c", *(a[0] + 1); // prints "1"
printf("%c", *(a + 1)[1]; // prints "b"

并且只是为了完整性(这可以被认为是访问数组值的“正常”方式):

printf("%c", a[0][1]; // prints "1"
printf("%c", a[1][1]; // prints "b"

关于任何人都可以详细解释以下 c 中的指针程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53059256/

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