scanf(“%s%s”,a,b );中不用&a,&b也可以吗?

如题所述

scanf(“%s%s”,a,b );中不用&a,&b也是可以的。

因为定义的字符数组名a,b本身就代表数组a和b的首地址,所以,使用

scanf(“%s%s”,a,b );

和scanf(“%s%s”,&a,&b );

是等价的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-22
嗯 可以的 因为字符串的名称也可看成一个地址,所以有时不加地址符也是正确的!
第2个回答  推荐于2018-02-28
首先说明 %s格式符 表示用来输入出一个字符串 而字符串是以数组的形式的存储的
c语言中数组名代表该数组的起始地址 此处,a,b均为数组名 代表的是首地址 再用取地址符号 就重复了 请注意与%c的区别 理解就好啦本回答被提问者和网友采纳
第3个回答  2010-12-22
字符串在内存中连续存放的,以'\0'作为结束,只要得到首地址,就可以整个的读取;字符数组a[],数组名a 本身就指向首地址,即数组存放的字符串的首地址,因此不加&;字符指针 *a 也是指向字符串的首地址,因此不加&
第4个回答  2010-12-22
如果是字符串可以不用,%s就是表示字符串
相似回答