请说明数组和指针的联系与区别,越详细越好,面试用的,条理清晰最好,系统的总结一下啊,谢谢。
发布网友
发布时间:2022-05-05 15:32
我来回答
共5个回答
热心网友
时间:2023-10-08 22:05
这种题目真的很无趣,感觉没有任何意义啊。
只要知道它们最本质的含义就可以了,万变不离其质。
数组:定义了一块连续的内存区域。
指针:就是一个普通变量,如果非要说点特殊的,那么就是它指向某一块内存区域的首地址。
根本不相关的2个概念,硬要扯什么区别和联系,实在是费解。都是被应试教育给害得啊。
总是听到有人说指针搞不懂,很难。实在难以理解,我怀疑他们都是学文科的。指针没有任何特别之处,本质就是一普通变量,在32位系统中占4个字节,和int类型一样。
既然你这么问了,就随便说点。
1.当作为函数参数传递的时候,数组可以当指针用,本质就是取数组第一个元素的内存地址传过去。【你可以当这个是联系】
2.指针虽然可以当数组用,但本质上是完全不一样的。给你举个例子:
int *p = null;
int buff[10];
以下都在32位系统下考虑
sizeof(p) 永远等于4,请看上面的2点核心定义,指针就是一普通变量,和int一样,所以大小是4.
sizeof(buff)等于10*4=40.原因就是:此数组内存结构是连续的10个int变量,每个int变量占4个字节。【你可以当这个是区别】
说来说去,都是围绕最核心的2点。搞明白了那2点。可无忧!
热心网友
时间:2023-10-08 22:05
Q:
A)什么是指针?
B)什么是数组?
C)数组和指针之间有什么样的关系?
A:
A)指针是一个数据类型,是用来存放地址的。地址是内存单元的编号。内存是程序运行是用来存放数据和代码的空间。
B)数组是有序数据的集合,是一种构造类型的数据。
C)关系:他们之间没有任何关系。
指针就是指针,指针变量在32位操作系统下永远占4各字节,其值为某一内存单元的地址。指针可以指向任何地方,但是不是任何地方都能通过这个指针变量访问到。
数组就是数组,其大小与元素的类型和个数有关。定义数组是必须指定其元素的类型和个数,数组可以存任何类型的数据,但不能存函数。
总之,数组和指针是两个完全不一样的东西。只是他们都可以以“以指针形式”和“以下标形式”访问。一个是完全的“匿名”访问,另一个是“具名加匿名“的访问。
希望对你有所帮助。
热心网友
时间:2023-10-08 22:06
1,指针是一个变量,其值可以改变,而引用必须在定义时初始化并在整个生命周期中不能改变
2.引用在使用不需要加任何标识符,但指针变量必须加上取值运算符 " * " 才能指向一个变量或对象
3.指针可以为空(NULL, 0),引用必须关联到一个对象或实体
4.指针的自增运算符与引用的++运算
5.指针在定义时可以不初始化,但引用在定义时必须初始化
热心网友
时间:2023-10-08 22:07
话说你知道内存么,,
数组是一块连续的内存空间,
那我们怎么访问这段空间呢,,,指针也
比如 char test[32]={0};
这是一个可容纳32个字符的空间
如果我们要获取test[15] 这个字符,,怎么获取
正常我们写 test[15]就能取到值了,
但是内存的操作是(test+ 15)这个操作。当然C默认的数组名是首地址 也就是指向这个地址的
标识
指针就是内存地址的标识,数组是一块内存,用标识去访问内存,就这么简单
如果你有性趣 去看看汇编 你就很明鸟了。。。。不懂的再问,过来人,很久才搞明白这个问题
热心网友
时间:2023-10-08 22:07
我给你个建议:网上分析不一定能够做到全面和权威。你可以看看《C和指针》中关于数组和指针的描述。非常经典。给我邮箱我可一把电子版的发给你。