字符数组读入时加&与不加&怎么都对?
我在写如下程序的时候发现字符数组读入时加&与不加&都可以读输入的东西.
char ch[5];
scanf( "%s ",ch);
printf( "%s ",ch);
与
char ch[5];
scanf( "%s ",&ch);
printf( "%s ",ch);
都可以,请问是怎么回事呢?
[解决办法]
是的它们意思是一样的,都表示数组的首地址。
[解决办法]
数组名的本身
相当一个指针
值为地址
[解决办法]
scanf( "%s ",ch);ch转换成char *
scanf( "%s ",&ch);取ch[5]的头一个字符的地址,相当于char *