sanfuzi
发表于 2024-1-5 21:13
数组是一块连续的内存空间,用于存储相同类型的元素。指针是一个变量,用于存储内存地址,该地址指向另一个变量或内存块。
lzbf
发表于 2024-1-6 16:23
数组的地址是常量,是不允许改变的。而指针变量由于是个变量,可以进行改变。
数组名就是数组的首地址,而指针需要先指向某个地址,然后通过偏移量来获取具体数值。
alvpeg
发表于 2024-1-6 16:38
指针可以进行加减运算,表示在内存中移动到下一个或上一个元素的地址。数组名在某些情况下也可以进行类似运算,但它们并不等同于指针。
wilhelmina2
发表于 2024-1-6 17:02
数组名在大多数情况下是一个指向数组第一个元素的指针,但它们之间有一个重要的区别:数组名不能作为左值,也就是说,你不能给数组名赋值。而指针可以作为左值,你可以给它赋值,从而改变它指向的内存地址。
youtome
发表于 2024-1-6 17:17
数组通过下标直接访问,例如数组a,而指针通过间接访问,例如*(p+i)。
linfelix
发表于 2024-1-6 17:41
数组名即代表这块内存的地址,比较直接;而指针比较含蓄,其本身不代表任何有意义的内容,只有给它赋值后,它才真正的表示一块有意义的内存地址。
phoenixwhite
发表于 2024-1-6 17:52
数组的大小在定义时就已经确定,且在运行期间无法改变。
指针在定义时并不需要确定其指向的内容的大小,且可以在运行期间改变其指向的内容。
在某些情况下,例如使用字符串常量进行初始化时,数组和指针都可以被用来存储和操作数据。
mmbs
发表于 2024-1-6 18:18
从存储方式上看,数组通常存储在静态存储区或栈上,占据固定的内存空间;而指针则可以随时随地地指向任意类型的内存块。
kmzuaz
发表于 2024-1-6 18:42
数组和指针在C语言中都是用来处理数据的有力工具
beacherblack
发表于 2024-1-6 19:05
通过解引用指针访问其指向的内容,如 *ptr 访问指针所指的对象;同时也可以使用指针算术来遍历数组,如 ptr 等效于 *(ptr+i)。
janewood
发表于 2024-1-6 19:13
int arr; 声明了一个包含10个整数的数组,而 int *ptr; 声明了一个指向整数的指针。
i1mcu
发表于 2024-1-6 19:23
指针是一个变量,它的值是另一个变量的地址。指针可以用来存储和访问内存地址,从而间接访问和修改内存中的数据。指针的大小通常是固定的,与计算机的位数有关。
jackcat
发表于 2024-1-6 19:37
在某些情况下,使用指针可能会带来额外的开销,例如内存分配、指针解引用等操作。
在固定大小的数组中访问元素通常更快,因为编译器可以进行优化,而且内存布局是已知的。
hilahope
发表于 2024-1-6 19:55
在函数调用时,数组通常会传递一个副本,而指针会传递实际的地址。这意味着,当函数修改数组时,原数组不会改变,而当函数修改指针指向的内存时,原内存会被修改。
iyoum
发表于 2024-1-6 20:29
数组是存储数据的容器,而指针是存储内存地址的变量。数组在内存中占据一块连续的空间,可以通过索引直接访问数据;指针则可以指向任何内存地址,通过指针可以间接访问或修改数据。
primojones
发表于 2024-1-6 20:38
数组和指针是两种不同的数据结构,它们在存储方式、使用方式、内存管理、传递方式、指针运算和sizeof运算符等方面有明显的区别。
mickit
发表于 2024-1-6 20:51
数组名和指针在作为函数参数时也有所不同。当数组名作为函数参数时,实际上传递的是数组的地址,函数内部可以通过这个地址访问整个数组。而当指针作为函数参数时,传递的是指针本身的值,即内存地址,函数内部可以通过这个地址访问和修改指针所指向的数据。
AIsignel
发表于 2024-1-8 10:37
数组以及指针在c说话中都是紧张的数据类型,但它们有着较着的区分。
天天向善
发表于 2024-1-8 14:47
指针可以执行指针操作,如增加和减少指针,而数组不能执行这些操作。
鹿鼎计
发表于 2024-1-9 10:50
在利用指针时,必要分外细致内存的分派以及开释,以防止内存透露。