C语言中,数组在内存中占一片连续的存储区,由什么来代替它的首地址?

 我来答
八哥说科技
高粉答主

2019-09-27 · 分享科技资讯,共享科技生活
八哥说科技
采纳数:113 获赞数:78625

向TA提问 私信TA
展开全部

C语言中规定,数组名就代表了该数组的首地址。

整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10]。设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。

因此在c前面不能再加地址运算符&。如写作scanf("%s",&c);则是错误的。在执行函数printf("%s",c) 时,按数组名c找到首地址,然后逐个输出数组中各个字符直到遇到字符串终止标志'\0'为止。

扩展资料:

数组的表示方法:

数组元素是组成数组的基本单元。数组元素也是一种变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。

数组元素的一般形式为:数组名[下标] 其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。

例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量, 而不能一次引用整个数组。

参考资料来源:百度百科-数组

帐号已注销
2021-06-13 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

C语言中规定,数组名就代表了该数组的首地址。

整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10]。设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。

因此在c前面不能再加地址运算符&。如写作scanf("%s",&c);则是错误的。在执行函数printf("%s",c) 时,按数组名c找到首地址,然后逐个输出数组中各个字符直到遇到字符串终止标志'\0'为止。

产生来源

在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中,加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题,没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了。

以上内容参考:百度百科-数组

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
RLXXQ
推荐于2017-08-04 · TA获得超过1154个赞
知道小有建树答主
回答量:833
采纳率:51%
帮助的人:241万
展开全部
数组名字 .
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2018359
2016-12-25 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1439万
展开全部
干嘛要代替它的首地址? 没明白你的意思

或者你要实现什么?
更多追问追答
追问
由什么代表数组的首地址
刚才字打错了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式