因此,数组名不是指针,永远也不是,但在一定条件下,数组名可以转换为指针。 二、数组名是一个常量吗? 看见这句话有人会觉得奇怪,数组定义之后就不能改变了,数组名不就是个常量吗?在表达式中,数组名的确可以转换为一个不变的符号地址,但在C中,不变的实体不一定是常量!而且,C/C++有常量与常量表达式之分,常量...
数组第一个元素的地址是数组的首地址。在C语言中,数组名就是此数组的首地址,所以数组名是指针常量。
对象数组的数组名是常..指针常量,,就是指针指向的是常量,这个常量不能修改,,常量指针,是指向的地址不能被修改,,但是可以通过*运算修改里面的值,,根据数组里面的值可以修改,而数组地址不变可以知道,数组名是个常量指针,
二维数组名不能用二级指针接收,我们考虑一维数组名br可以用int* p接收,因为p存放了br首元素的地址 以此类推,我们用一个指针指向二维数组首元素的地址即可。而二维数组ar[3][4]首元素是ar[0],是一个数组,数组的地址就要用指向数组的指针接收,即: int(*p1)[4]=ar; 1. intmain() { intar...
数组名是一个指针常量这种观点来源于数组名在表达式计算中与指针的结果等效性。例如下面的代码: 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的假象,但,这仅仅是假象。鉴于指针常量包含了指针和常量两类概念,我们可以把这个...
数组名是一个指针常量这种观点来源于数组名在表达式计算中与指针的结果等效性。例如下面的代码: int a[10], *p = a, *q; q = a + 1; q = p + 1; 在效果上看,a + 1与p + 1是相同的,这很容易给人一种a就是p的假象,但,这仅仅是假象。鉴于指针常量包含了指针和常量两类概念,我们可以把这个问...