char *b[]={"ab","cde"};
char c[2][3]={"cc","dd"};
printf("%s\n%s\n",b[0],b+1);
printf("%s %d address=%d\n%s\n",c,c,&c,c[1]);
这是我的片段。我得到的输出是
ab
s@
cc 2110475296 address=2110475296
dd
我的问题是:当我们使用字母“c”为'%s'打印数组c的值时,打印字符串是可以的,但是当我们使用'%d'时,它应该打印字符串的ASCII值但是打印地址为什么?
答案 0 :(得分:1)
c
不是char
;它是(传递给){em>指向char
的数组的指针。而指针的基础值通常是它指向的地址。
但是,作为参考,您可能通过传递printf
类型不同于您告诉它的类型而导致宇宙崩溃。不要那样做。