C中的指针(打印地址为什么不是ASCII值)?

时间:2013-11-28 05:26:19

标签: c

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值但是打印地址为什么?

1 个答案:

答案 0 :(得分:1)

c不是char;它是(传递给){em>指向char的数组的指针。而指针的基础值通常是它指向的地址。

但是,作为参考,您可能通过传递printf类型不同于您告诉它的类型而导致宇宙崩溃。不要那样做。