gpt4 book ai didi

c程序输出说明

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

我在网上某处找到了这段代码。该程序的输出是字符串字符串字符串有人能解释一下为什么第一个 secon 和第三个 printf 语句打印相同的输出,即使它们的参数不同吗?

#include<stdio.h>
int main()
{
char a[2][3][3] = {'s','t','r','i','n','g'};
printf("%s\n", *a);
printf("%s\n", a);
printf("%s\n", **a);
getchar();
return 0;
}

最佳答案

由于这是 3 维数组(数组的数组的数组),*aa**a 均指同一个地址。前两个 printf() 的类型不正确,但是在所有情况下它将被解释为平面 char * 字符串。如果您在编译器上打开警告,您应该会看到一些关于格式字符串和类型不匹配的信息。

请记住,*a 类似于 a[0]**a 类似于 a[0][ 0]。这可能更容易理解为什么他们引用相同的地址。

关于c程序输出说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11670773/

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