因此,数组名不是指针,永远也不是,但在一定条件下,数组名可以转换为指针。 二、数组名是一个常量吗? 看见这句话有人会觉得奇怪,数组定义之后就不能改变了,数组名不就是个常量吗?在表达式中,数组名的确可以转换为一个不变的符号地址,但在C中,不变的实体不一定是常量!而且,C/C++有常量与常量表达式之分,常量...
数组第一个元素的地址是数组的首地址。在C语言中,数组名就是此数组的首地址,所以数组名是指针常量。
对象数组的数组名是常..指针常量,,就是指针指向的是常量,这个常量不能修改,,常量指针,是指向的地址不能被修改,,但是可以通过*运算修改里面的值,,根据数组里面的值可以修改,而数组地址不变可以知道,数组名是个常量指针,
int a[4][4],a指向一个数组,数组里有4个元素,每个元素的类型都是int[4](严格控制了a[0]和a[1]之间的距离就是sizeof(int)*4),a的本质是一个数组指针 int* p[4],p指向一个数组,数组里有4个元素,每个元素的类型都是...
数组名是一个指针常量这种观点来源于数组名在表达式计算中与指针的结果等效性。例如下面的代码: int a[10], *p = a, *q; q = a + 1; q = p + 1; 在效果上看,a + 1与 p + 1是相同的,这很容易给人一种a就是p的假象,但,这仅仅是假象。鉴于指针常量包含了指针和常量两类概念,我们可以把这个...
数组名是一个指针常量这种观点来源于数组名在表达式计算中与指针的结果等效性。例如下面的代码: int a[10], *p = a, *q; q = a + 1; q = p + 1; 在效果上看,a + 1与p + 1是相同的,这很容易给人一种a就是p的假象,但,这仅仅是假象。鉴于指针常量包含了指针和常量两类概念,我们可以把这个问...
数组名是一个指针常量这种观点来源于数组名在表达式计算中与指针的结果等效性。例如下面的代码: int a[10], *p = a, *q; q = a + 1; q = p + 1; 在效果上看,a + 1与p + 1是相同的,这很容易给人一种a就是p的假象,但,这仅仅是假象。鉴于指针常量包含了指针和常量两类概念,我们可以把这个问...