永发信息网

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

答案:6  悬赏:0  手机版
解决时间 2021-04-26 19:05
  • 提问者网友:萌卜娃娃
  • 2021-04-26 10:45
scanf(“%s%s”,a,b );中不用&a,&b也可以吗?
最佳答案
  • 五星知识达人网友:撞了怀
  • 2021-04-26 11:38
scanf(“%s%s”,a,b );中不用&a,&b也是可以的。
因为定义的字符数组名a,b本身就代表数组a和b的首地址,所以,使用
scanf(“%s%s”,a,b );
和scanf(“%s%s”,&a,&b );
是等价的。

全部回答
  • 1楼网友:天凉才是好个秋
  • 2021-04-26 15:23
如果是字符串可以不用,%s就是表示字符串
  • 2楼网友:一秋
  • 2021-04-26 14:02
可以,但a,b就变成变量地址了
  • 3楼网友:鱼忧
  • 2021-04-26 13:41
字符串在内存中连续存放的,以'\0'作为结束,只要得到首地址,就可以整个的读取;字符数组a[],数组名a 本身就指向首地址,即数组存放的字符串的首地址,因此不加&;字符指针 *a 也是指向字符串的首地址,因此不加&
  • 4楼网友:独钓一江月
  • 2021-04-26 13:29
嗯 可以的 因为字符串的名称也可看成一个地址,所以有时不加地址符也是正确的!
  • 5楼网友:狂恋
  • 2021-04-26 12:37
首先说明 %s格式符 表示用来输入出一个字符串 而字符串是以数组的形式的存储的
c语言中数组名代表该数组的起始地址 此处,a,b均为数组名 代表的是首地址 再用取地址符号 就重复了 请注意与%c的区别 理解就好啦
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯