
正文
c语言数组和指针有什么不同,c语言中数组和指针的区别
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言中数组和指针的区别与联系
数组是用指针方式实现的,但数组值是一个常量,即不能改变数组的首地址,而指针是一个变量,可以改变它的值;如:数组 a和指针p,p=a+1;是合法的,但a=a+1;是不合法的。
指针:系统为某一个变量开辟单元格,指针便指向此单元格的变量值。数组:系统为某一组数开辟一组单元格,数组首地址便是你定义的数组变量名。数组和指针的唯一区别是,不能改变数组名称指向的地址。
区别:数组是一块内存连续的数据。指针是一个指向内存空间的变量。数组只能在静态储存区或栈上被创建。指针通常用来操作动态内存。数组是由编译器分配的空间,变量名是不能再赋值的。指针可以重复赋值。
相关问答
Q1: C语言指针和数组的关系
1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
2、指针:系统为某一个变量开辟单元格,指针便指向此单元格的变量值。数组:系统为某一组数开辟一组单元格,数组首地址便是你定义的数组变量名。数组和指针的唯一区别是,不能改变数组名称指向的地址。
3、数组名本质上就是个指针,也就是地址,但是它是一个常指针,是个固定值,而指针是是指针变量的简称,是个变量,这个变量存放的是地址值,它的值是可以改变的。
Q2: C语言中,数组和指针定义在内存方面的区别在哪?
区别:C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在C语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针。
数组是用指针方式实现的,但数组值是一个常量,即不能改变数组的首地址,而指针是一个变量,可以改变它的值;如:数组 a和指针p,p=a+1;是合法的,但a=a+1;是不合法的。
指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,当然也就更危险。
数组名本质上就是个指针,也就是地址,但是它是一个常指针,是个固定值,而指针是是指针变量的简称,是个变量,这个变量存放的是地址值,它的值是可以改变的。
Q3: C语言数组名和指针的区别?
1、区别:C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在C语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针。
2、C语言中,一维数组的数组名指向了这个数组的起始地址,而指针是它指向的某个东西的地址。例如定义int a[5],访问第二个元素可以用a[1],也可以用*(a+1)。
3、数组名所代表的就是该数组最开始的一个元素的地址,在计算数组元素a[i]的值时,C语言实际上线将其转换为 (a+i)的形式,然后再进行求值。
4、指针:系统为某一个变量开辟单元格,指针便指向此单元格的变量值。数组:系统为某一组数开辟一组单元格,数组首地址便是你定义的数组变量名。数组和指针的唯一区别是,不能改变数组名称指向的地址。
5、区别在于数组名是常指针,指向数组的指针变量是变量。常指针不能够改变其值,而指针变量则可以改变。例如char a[5];char *p=a;p++;是正确的用法,而a++是错误的用法。请采纳,谢谢。
Q4: 分析C语言中数组名和指针的区别
数组名指向数组的首地址,相当于地址常量,只能做右值。指针就是指向固定大小内存的地址,又分指针变量和指针常量。所以数组名也属于指针。
C语言中,数组的名称等价于数组的首地址,当然可以利用指针开辟动态空间,使用方式与数组在形式上相同的,但是他们有一个本质的区别,数组名相当于一个地址常数,而指针是一个以地址为内容的变量。
数组是用指针方式实现的,但数组值是一个常量,即不能改变数组的首地址,而指针是一个变量,可以改变它的值;如:数组 a和指针p,p=a+1;是合法的,但a=a+1;是不合法的。
区别:C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在C语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针。
从编译生成的角度来说 数组名 没有本身的存储空间,其只是一个地址。 代表数组的首地址。于是 数组名的值 不可能被改变。而指针 是一个变量 有自身的存储空间 可以被改变值 执行数学操作。
Q5: C语言中,指针和数组的区别和联系?
数组是用指针方式实现的,但数组值是一个常量,即不能改变数组的首地址,而指针是一个变量,可以改变它的值;如:数组 a和指针p,p=a+1;是合法的,但a=a+1;是不合法的。
指针:指针很灵活,它可以指向任意类型的数据。指针的类型说明了它所指向地址空间的内存。指针:由于指针本身就是一个变量,再加上它所存放的也是变量,所以指针的存储空间不能确定。
指针:系统为某一个变量开辟单元格,指针便指向此单元格的变量值。数组:系统为某一组数开辟一组单元格,数组首地址便是你定义的数组变量名。数组和指针的唯一区别是,不能改变数组名称指向的地址。
指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
C语言中,数组的名称等价于数组的首地址,当然可以利用指针开辟动态空间,使用方式与数组在形式上相同的,但是他们有一个本质的区别,数组名相当于一个地址常数,而指针是一个以地址为内容的变量。
关于c语言数组和指针有什么不同和c语言中数组和指针的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





