打印
[技术问答]

数组与指针的区别?

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
21
sanfuzi| | 2024-1-5 21:13 | 只看该作者 回帖奖励 |倒序浏览
数组是一块连续的内存空间,用于存储相同类型的元素。指针是一个变量,用于存储内存地址,该地址指向另一个变量或内存块。

使用特权

评论回复
22
lzbf| | 2024-1-6 16:23 | 只看该作者
数组的地址是常量,是不允许改变的。而指针变量由于是个变量,可以进行改变。
数组名就是数组的首地址,而指针需要先指向某个地址,然后通过偏移量来获取具体数值。

使用特权

评论回复
23
alvpeg| | 2024-1-6 16:38 | 只看该作者
指针可以进行加减运算,表示在内存中移动到下一个或上一个元素的地址。数组名在某些情况下也可以进行类似运算,但它们并不等同于指针。

使用特权

评论回复
24
wilhelmina2| | 2024-1-6 17:02 | 只看该作者
数组名在大多数情况下是一个指向数组第一个元素的指针,但它们之间有一个重要的区别:数组名不能作为左值,也就是说,你不能给数组名赋值。而指针可以作为左值,你可以给它赋值,从而改变它指向的内存地址。

使用特权

评论回复
25
youtome| | 2024-1-6 17:17 | 只看该作者
数组通过下标直接访问,例如数组a[i],而指针通过间接访问,例如*(p+i)。

使用特权

评论回复
26
linfelix| | 2024-1-6 17:41 | 只看该作者
数组名即代表这块内存的地址,比较直接;而指针比较含蓄,其本身不代表任何有意义的内容,只有给它赋值后,它才真正的表示一块有意义的内存地址。

使用特权

评论回复
27
phoenixwhite| | 2024-1-6 17:52 | 只看该作者
数组的大小在定义时就已经确定,且在运行期间无法改变。
指针在定义时并不需要确定其指向的内容的大小,且可以在运行期间改变其指向的内容。
在某些情况下,例如使用字符串常量进行初始化时,数组和指针都可以被用来存储和操作数据。

使用特权

评论回复
28
mmbs| | 2024-1-6 18:18 | 只看该作者
从存储方式上看,数组通常存储在静态存储区或栈上,占据固定的内存空间;而指针则可以随时随地地指向任意类型的内存块。

使用特权

评论回复
29
kmzuaz| | 2024-1-6 18:42 | 只看该作者
数组和指针在C语言中都是用来处理数据的有力工具

使用特权

评论回复
30
beacherblack| | 2024-1-6 19:05 | 只看该作者
通过解引用指针访问其指向的内容,如 *ptr 访问指针所指的对象;同时也可以使用指针算术来遍历数组,如 ptr[i] 等效于 *(ptr+i)。

使用特权

评论回复
31
janewood| | 2024-1-6 19:13 | 只看该作者
int arr[10]; 声明了一个包含10个整数的数组,而 int *ptr; 声明了一个指向整数的指针。

使用特权

评论回复
32
i1mcu| | 2024-1-6 19:23 | 只看该作者
指针是一个变量,它的值是另一个变量的地址。指针可以用来存储和访问内存地址,从而间接访问和修改内存中的数据。指针的大小通常是固定的,与计算机的位数有关。

使用特权

评论回复
33
jackcat| | 2024-1-6 19:37 | 只看该作者
在某些情况下,使用指针可能会带来额外的开销,例如内存分配、指针解引用等操作。
在固定大小的数组中访问元素通常更快,因为编译器可以进行优化,而且内存布局是已知的。

使用特权

评论回复
34
hilahope| | 2024-1-6 19:55 | 只看该作者
在函数调用时,数组通常会传递一个副本,而指针会传递实际的地址。这意味着,当函数修改数组时,原数组不会改变,而当函数修改指针指向的内存时,原内存会被修改。

使用特权

评论回复
35
iyoum| | 2024-1-6 20:29 | 只看该作者
数组是存储数据的容器,而指针是存储内存地址的变量。数组在内存中占据一块连续的空间,可以通过索引直接访问数据;指针则可以指向任何内存地址,通过指针可以间接访问或修改数据。

使用特权

评论回复
36
primojones| | 2024-1-6 20:38 | 只看该作者
数组和指针是两种不同的数据结构,它们在存储方式、使用方式、内存管理、传递方式、指针运算和sizeof运算符等方面有明显的区别。

使用特权

评论回复
37
mickit| | 2024-1-6 20:51 | 只看该作者
数组名和指针在作为函数参数时也有所不同。当数组名作为函数参数时,实际上传递的是数组的地址,函数内部可以通过这个地址访问整个数组。而当指针作为函数参数时,传递的是指针本身的值,即内存地址,函数内部可以通过这个地址访问和修改指针所指向的数据。

使用特权

评论回复
38
AIsignel| | 2024-1-8 10:37 | 只看该作者
数组以及指针在c说话中都是紧张的数据类型,但它们有着较着的区分。

使用特权

评论回复
39
天天向善| | 2024-1-8 14:47 | 只看该作者
指针可以执行指针操作,如增加和减少指针,而数组不能执行这些操作。

使用特权

评论回复
40
鹿鼎计| | 2024-1-9 10:50 | 只看该作者
在利用指针时,必要分外细致内存的分派以及开释,以防止内存透露。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则