指针数组可以直接赋值吗_指针数组

指针数组可以直接赋值吗_指针数组一文搞懂C语言数组指针与指针数组目录 前言一、指针数组1.指针数组概念2.指针数组赋值1.普通指针变量的赋值2.指针数组的赋值 二、数组指针1.数组指针概念2.数组指针的运算1.数组变量名与地址2.&arr[0]与&arr3.&arr

一文搞懂C语言数组指针与指针数组   目录 前言一、指针数组1.指针数组概念2.指针数组赋值1.普通指针变量的赋值2.指针数组的赋值 二、数组指针1.数组指针概念2.数组指针的运算1.数组变量名与地址2.&arr[0]与&arr3.&arr[0]++与&arr++4.利用数组指针访问数组素 总结   前言   关于C语言中的数组指针与指针数组的概念,是C语言中难度略大的内容。本文使用大白话,结合图片和实验,力图把这两个概念介绍一下   一、指针数组   指针数组比较简单。首先记住 “指针数组其实是一个数组”;   1.指针数组概念   地址数内存单的编号,在32位操作系统中地址总线宽度为32,因此采用一个四字节的数来表示一个地址,在上面代码定义的三个指针数组中,数组的素用来容纳一个地址,因此每个素所占4字节。   2.指针数组赋值   1.普通指针变量的赋值   2.指针数组的赋值   二、数组指针   1.数组指针概念   数组指针的实际运用比较少,但是在一些公司的面试笔试中经常出现,原因在于可以通过对数组指针的考察,测试一个求职人员对指针概念的掌握程度。数组指针几乎是C语言里面最难理解的类型。   好了,一言以蔽之,“数组指针其实是一个指针”,既然是指针,那么它的长度还是4个字节。   可能之前看惯了类似于 char *,int *,等指针变量的类型名,对于类似于char *[5],这种类型不太适应。   ps: 思考一下 int *p[5] 和 int (*p)[5]区别?   答:前者是指针数组,后者是数组指针,前者的每个素可以容纳 int * 型地址,对于后者,p是 int(*)[5]型指针。   2.数组指针的运算   看一段代码;   代码如下   运行结果:   1.数组变量名与地址   采用 sizeof 关键字对数组变量arr计算求得结果是 20;由此可见arr不是地址,但是将arr赋值给一个int * 型指针变量,输出的又为数组第一个素的首地址,在这里,笔者以为,不可以说数组变量名就是地址,只能说有时候数组变量名可以表示数组首素的首地址。参考《C语言深度剖析》那本书,指针变量变量名的其实指的是内存中的那一块区域。 2.&arr[0]与&arr   二者输出相同,但含义不一样,&a[0]指的是数组首素的首地址,类型为int * 类型。&a指的是数组变量的地址,类型为 int (*) [5]。 3.&arr[0]++与&arr++   &arr[0]++ 指的是arr[1]素的首地址;   &arr++ 指的是数组末素末地址后面那个字节的地址,对&arr 加1,相当于加了 sizeof(arr); 4.利用数组指针访问数组素   代码:   运行结果:   总结   ,代码注释都比较清楚,先不总结了啊,回头在写!!

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/33302.html

(0)
上一篇 2024年 9月 10日 下午7:51
下一篇 2024年 9月 10日 下午7:56

相关推荐

关注微信