lstd.net
当前位置:首页 >> 在C语言中,数组A[5],数组名A可以A++吗 >>

在C语言中,数组A[5],数组名A可以A++吗

指针常量不能做++运算

数组首地址 相当于 &a[0] 可以用printf("%p", &a[0]);打印这个地址

数组的长度一定要是常量,这样是不行的

选A,数组的首地址.在C语言程序中,数组名表示的是“数组首个元素的地址,而首个元素是int类型”.在C语言中, 数组属于构造数据类型.一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型.因此按数组

在定义数组的时候才表示数组名,比如int a[6]; 这是定义一个长度6的整型数组后面要是用到a[1],a[2]什么的,就是数组中的数

int a[8];数组名a表示数组的首地址,a[3] = *(a+3),表示的是指针向后移动3个位置后的数,并不表示地址.

你好!这段话是正确的.p是指针,p+5对应的是a[5]的地址,*(p+5)是a[5]的值.如有疑问,请追问.

是否有错误,取决于p的类型.a是数组,那么a的基础类型为A,则根据a的维数,如果是一维数组,那么a的类型为A*, 二维数组,A的类型为A**,依次类推. 无论具体是什么形式,最终a的类型设为P.这样a+5,根据C语言规则,指针加上常数后,类型不变,于是a+5的类型同样为P.于是,如果赋值表达式的左值,*p与a+5有着相同的类型,那么该语句就没语法错误,否则有语法错误.这样,如果p的类型是P*型,则没有语法错误.举例来说,如果a为整型一维数组int a[10]; 那么如果p的定义是int **型,那么*p=a+5就没有语法错误.如果p是其它类型,则存在语法错误.

哈哈,选我吧!inta[5];中的那个5表示这个数组最多可以包含五个元素,在引用的时候是a[0]~a[4](a[n]下标从0开始,到n-1为止),这5个元素,至于a[5],对于这个定义是的使用是非法的,因为他使用了超出数组申请空间以外的空间,就好比使用了不属于自己的东西(使用别人的是违法的).若你使用a[5]的话,不一定会出现什么效果,可能在你看来会是正常的效果,但实际上是不正常的行为.

合法a[10]

网站首页 | 网站地图
All rights reserved Powered by www.lstd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com