c语言数组名给指针,c 数组 指针
作者:admin日期:2024-02-18 21:30:19浏览:38分类:资讯
C语言中数组能否当指针使用
1、可以 指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。
2、不可以,因为w这时还是野指针。只有这样 int *w,a[44];w=a;操作后才可以,操作w就与操作a一样了。而且,操作指针比直接操作数组名更方便,因为指针是变量,可以++、--,而数组名是常量,不能++、--。
3、函数的返回值“绝不能”是函数数组,而只能是指向数组或函数的指针。有些人喜欢理解为:除数组和函数之外所有C语言参数在默认情况下都是传值调用,数组和函数都是传址调用。
为什么不能把二维数组名/行的首地址赋给指针?
1、所以你要定义指针去用二维数组名赋值,需要定义指针int (*k)[7];不是int *k。或者你把二维数组当成一维数组来看(二维内部地址是连续的,和一维一样),这样int *k;k=&d[0][0];之后通过k++遍历二维数组所有值。
2、= b呢,这是因为数组退化到指针,只有第一维的数组可以不确定数组长度,可以直接作为首地址。有“数组名能否作为右值”的讨论。
3、而int (*pa)[5]定义了一个指向5个元素的int数组的指针,而a只是数组的首地址,&a才是数组的指针,同样也是因为类型不匹配。
C语言中二维数组名能否直接赋给指针变量
这样是不行的。二维数组的指针必须限定第一维的大小。所以:int (*ppr)[3];ppr = fool;这样才可以。
b呢,这是因为数组退化到指针,只有第一维的数组可以不确定数组长度,可以直接作为首地址。有“数组名能否作为右值”的讨论。
所以直接把二维数组名赋给一个普通的指针变量,这个指针是指向元素aa[0]的,但实际上呢,aa[0]不是一个具体的元素,而是元素aa[0][0]的地址;所以只有把数组名赋给二级指针它才指向一个具体的元素。
C语言可以把指针和数组名之间相互赋值吗?
可以的,数组名就是数组第一个元素的指针,所以可以赋值给相同类型的指针变量,此时,数组名和这个指针都指向这个数组的开头。
同类型指针变量可以相互赋值,数组不行,只能一个一个元素的赋值或拷贝 存储方式 数组:数组在内存中是连续存放的,开辟一块连续的内存空间。
C语言中,数组间不能相互赋值——这是历史遗留问题,当年在B语言中,数组名和指针名是没有区别的(除了数组名定义时自动为数组分配内存),数组名可以指向别的对象或数组。换句话说,数组名之间的赋值是浅赋值。
可以。指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。
是不能修改的。void fun(char a[]){} void main(){ char *p = 123;fun(p);} 数组作为函数参数的时候,是可以把指针变量赋值给它的,这时数组名就可以看作一般的指针变量了。简单的说就是这样。
猜你还喜欢
- 05-15 房屋设计语言,房屋设计理念文案
- 04-20 计算机语言排行榜,计算机语言排行榜前十
- 04-19 数组的定义教案,数组的定义与使用实验心得
- 04-18 strlen函数c语言,c语言strlen的用法
- 04-17 c语言定义数组的三种方式,c语言中怎样定义一个数组
- 04-15 c语言程序设计何钦铭电子书,c语言程序设计何钦铭第二版pdf
- 04-15 软件开发语言排行,软件开发语言有哪些
- 04-12 指针表示数组元素,指针如何表示数组
- 04-10 c语言数组平移,c语言如何把数组往后移
- 04-08 c语言程序设计谭浩强pdf,C语言程序设计谭浩强pdf
- 04-08 go语言高级编程,go语言高级编程 电子书
- 04-08 易语言下载进度条,易语言进度条加载程序
取消回复欢迎 你 发表评论:
- 最近发表
- 标签列表
- 友情链接
暂无评论,来添加一个吧。