首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c和&c的有关问题

2012-03-07 
c和&c的问题有定义语句:intbcharc[10],则正确的输入语句是A)scanf( %d%s ,&b,&c)B)scanf( %d%s ,&b

c和&c的问题
有定义语句:int     b;char     c[10];     ,则正确的输入语句是            
A)scanf( "%d%s ",&b,&c);  
B)scanf( "%d%s ",&b,c);  

老谭的书上写了A答案是错误的,但是用VC,TC等编译工具运行都没有错误,而且结果都一样,c和&c是一个地址。

为什么?


[解决办法]
你可以认为“c”跟“char* p”是同一个级别的,而“&c”跟“char (*p)[10]”是同一个级别的。
是啊,同一个地址对scanf来说效果就没啥区别。
[解决办法]
对于char a[10]这样的数组类型
虽然a可以当作指针来用,表示该数组的首地址
但实际上并没有一个存储区域来保存这一地址
所以对a取地址得到的还是数组的首地址
而char* p = a;就实实在在的分配了一段存储空间来保存地址
所以对p取地址就可以得到该存储空间的地址

热点排行