1.类型 数组名表示整个数组本身,是一个不可修改的常量指针,它包含的是数组第一个元素的地址。因此,可以使用数组名来引用整个数组而不是单个元素。指针是一个变量,存储了另一个变量的地址。 2.大小 数组的大小在编译期间就确定了,所以一个数组一旦声明就不能更改大小。指针的大小取决于系统使用的位数,通常是32位...
指针和数组名的共同特点是都是用来指代一个地址的。 不同的是: 1、指针是需要占用内存空间来存储地址的;数组名则更像是一个立即数或者常数。你可以修改指针指向的内容,但你绝对无法改变数组名的指向。 2、数组和指针对于sizeof来说是不同的,指针变量占用的空间通常等于当前CPU的最大位数,数组名取sizeof的话,得...
很显然,并不是,因为数组具有一些和指针完全不同的特征。例如:数组具有确定数量 的元素,而指针只是一个标量值。编译器用数组名来记住这些属性。只有当数组名在表达 式中使用时,编译器才会为其产生一个指针常量。 二、数组名同指针区别 为了说明指针和数组并不是相等的,考虑如下声明: inta[5]; int *b; a和b能...
在C++中,数组名和指针都是可以用来指向一块内存区域的标识符,但它们在本质上是不同的。 1、数组名表示整个数组对象,而指针表示指向某个对象的内存地址。在C++中,用数组名声明的变量会被分配一个固定的内存空间,该空间足以容纳整个数组的元素。当它传递给函数时,它被转换为指向该数组第一个元素的...
4 解释一下,指针进行p+1操作对于不同类型的p是不同的,具体看存储不同类型的数据需要多少个字节。两个相同类型的指针只能进行减操作;相加,相乘和相除是没有意义的。5 相信大家已经知道了数组名和指针的相同的地方;下面说下不同的地方:数组名相当于 类型* const p;普通指针是 类型* p;也就是说,数组名a...
指针和数组之字符串的区别 1. 字符串宏 #define CONST_STR "const str" 宏在预编译的时候会替换成实际的值 2.数组 数组名对应一块内存,在生命周期内其地址和容量不会改变,数组里面的内容可以变。 3.指针 指针指向一块内存,如果指向字符串常量(RO),则不能修改内容。 如果申请了一块内存,复制字符串常量,则...
从编译生成的角度来说 数组名 没有本身的存储空间,其只是一个地址。 代表数组的首地址。于是 数组名的值 不可能被改变。而指针 是一个变量 有自身的存储空间 可以被改变值 执行数学操作。
指向数组的指针其实是指向指针的指针,而指向数组的元素的指针只是单纯的指向数组元素的类型的指针。数组名和指针变量名有何区别?答:数组名是常指针,指针变量是变量,顾名思义常指针不能够改变其值,而变量则不同,可以改变。例如int a[10];int *p=a;p++;是正确的用法而a++就是错误的用法。明白...
指针和数组名的区别 指针是 C 语言具有低级语言特征的最直接的证据。在汇编语言里面 指针的概念随处可见。比如 SP SP 寄存器又叫堆栈指针 它的值是地址 由于 SP保存的是地址 并且 SP 的值是不断变化的 因此可以看作一个变量 而且是一个地址变量。地址也是 C 语言指针的值 C 语言的指针跟 SP 这样的寄存器...