C语言数组名和指针的区别?
数组是用指针方式实现的,但数组值是一个常量,即不能改变数组的首地址,而指针是一个变量,可以改变它的值;如:数组 a和指针p,p=a+1;是合法的,但a=a+1;是不合法的。
区别:C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在C语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针。
使用方式与数组在形式上相同的,但是他们有一个本质的区别,数组名相当于一个地址常数,而指针是一个以地址为内容的变量。
在C语言中数组名是一个什么的常量
1、数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10],设数组c的首地址为2000,也就是说c[0]单元地址为2000。
2、C语言中,数组名是一个不可变的指针常量,不能对它进行加、减和赋值运算。在C语言中规定,数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。不能对它进行加、减和赋值运算。
3、数组名即数组首地址,是一个常量。数组元素使用[n ]运算符(下标运算符)来表示第n+1号元素,或者使用“(p+n)”来表示第n+1号元素。
4、数组名首先是一个标识符,是这个数组的名字,同时又是一个指针,指向的是这个数组首地址。
5、数组名是一个指针常量这种观点来源于数组名在表达式计算中与指针的结果等效性。
请教一个关于指针数组的数组名问题?
1、指针数组的数组名就是该指针数组首元素的地址的别名。比如,一个人可以叫王小二,也有叫它小二,或者小王,其实都是指同一个人。
2、cat *family=new cat[22];的意思是创建一个指向cat类对象的指针和一个长度为22的数组,数组中的类型为cat类对象。family指向这个数组的之一个元素。数组名也是一个指针常量,也可以当指针用。
3、如图,a是数组之一个元素的地址值,一个指针,一般占用4个字节内存大小,p也是个指针,也占用4个字节,两个都是变量,因为赋值,两个存放的值都一样指针数组的数组名代表什么了,但是本身不一样,就想两个纸条写的都是同一个地址。
4、有一点很重要的,数组名和指针之间有一个不同之处,指针是一个变量,因此,pa+a和pa++都his合法的,但数组名不是变量(类似一个宏定义?用数组名替换地址?),所以进行对自身的增减运算是非法的。
5、默认的指向数组的指针指向数组的首元素,即指针变量保存数组首地址,数组名有两重意思指针数组的数组名代表什么:1即为数组的名称,2为&a[0]也就是数组的首地址,它不是指针,但可以当指针来使用。
6、a+5应该是指向a[0][4],然后数组的排序是从a[0][0],a[0][1]。。a[1][0]。这么个顺序。所以a+5就是移5个地址就是指针数组的数组名代表什么了。
指针数组的数组名代表什么的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于指针 数组、指针数组的数组名代表什么的信息别忘了在本站进行查找喔。