c语言中&a,b和&a,&b什么区别呢? 10

 我来答
新来的文盲
2018-09-17 · TA获得超过217个赞
知道答主
回答量:79
采纳率:100%
帮助的人:58.5万
展开全部
a[]比a少一维,我具体给你解释下。
几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。
比如说a[0]=2,a[1]=1,a[2]=3,组成一个一维数组,这就是a.但是,你要注意,a不是直接把这些东西都存着的,a只存首地址。
假设定义了一个二维数组a[3][3].这时候a[0],a[1],a[2]就不再是元素了,而代表的是一个有三个元素的一位数组,而此时的a就是一个二维数组。如果感觉这个有点困难没关系,等学习了指针什么的久很好理解这个了。
再说说你给的程序,你是不是在疑问为什么gets()直接给str1 就可以了?还有那个输出函数,为啥只用给str1就可以?
这得给存储方式有关,字符串就是字符的二维数组,gets()需要输入字符串的首地址,这个还算好理解,因为你应该学过了scanf()了,二者差不多,关键是为什么输出函数直接就写了str1呢?printf()之前你学的一般都是(printf("%d",a[1]));这种类型的。这里为啥要填一个地址参数呢?这是因为你前面是%s s代表字符串,字符串本身就是二维的,因此,你当然不能只给他一个单独的元素了,那么,你给了首地址他如何知道你这个字符串是啥呢?因为字符串都是顺序存储的,更重要的是字符串在结尾处有个标志“/0”,因此,你只要给力他首地址,他就知道从哪里开始,从哪里结束了。
纯手打,望采纳。
意法半导体(中国)投资有限公司
2023-06-12 广告
a>1 | b<2 就是a左移一位和b右移两位做或运算 strcpy(str1+srtlen(str1)/2),"es she")这个的意思是把str为开始地址所存字符串,从字符串长度一半的位置开始,用"es she”来代替,换句话说,就是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
GTA小鸡
高粉答主

2018-09-16 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
&a表示取a的地址,它是一个指针类型;a表示a本身。
scanf中以%s占位符读入字符串时,是不需要加取地址符&的,因为字符串数组或者指针本身就是指针类型。
追问
所以&a,b是取a的地址,b就是b的意思??
追答
是的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式