";这是因为字符串指针变量本身是一个变量,而字符串代表了其首地址,因而赋值是理所当然的;但数组就不一样,数组一旦定义后,数组在内存中的存储单元即确定,数组名所代表的数组首地址即确定,它便不可改变,因而不可将一个字符串赋给数组名。 2、指针变量必须有明确的指向目标。 当指针变量定义后,程序中必须先确定...
2、指向一维数组的指针不能访问二维数组中的元素及它们的地址。二维数组中有另外的指针形式定义和访问数组元素。
int *p=arr;//p arr代表的都是数组的首地址。不过有区别 printf("数组名:sizeof(arr)=%d,指针变量名:sizeof(p)=%d\n",sizeof(arr),sizeof(p));//sizeof是一个操作符,返回一个数据类型所占的字节数。数组是一个数据类型. //一般的数组名具有常量特性(数组名不是指针,但是值确实是一段地址的首地址...
在数组中,数组名表示首地址常量。a等同于&a[0]。所以p=a。就是p指向a首地址。p=&a是错的,a已经是地址里。可以写p=&a[0]。
int(*piArr数组指针1)[1]=(int(*)[1])iArr;//无法从“int [2][3]”转换为“int (*)[1] int(*piArr数组指针2)[2]=(int(*)[2])iArr; int(*piArr数组指针3)[3]=iArr; int(*piArr数组指针4)[4]=(int(*)[4])iArr; /***/ /**/ /***...
二维数组与二级指针的区别 最近在看C primer plus中文第六版,看到指针与多维数组的部分,发现在10.7节中解释双重解引用时,最后有一句“地址的地址或指针的指针就是双重间接的例子”,这句话本身没有错误,但是放到多维数组这里,难免就会让人以为,多维数组其实也是指针的指针,但是这种想法是错误的。(我个人觉得这里可能...
//数组名与一般指针变量的区别 //数组名作为形参,(该数组名仅仅是一个普通的指针变量,不具有常量特性(可自增,自减),也不代表一个数据类型。),但是不影响实参,形参不改变实参的指向。 void fun1(int array[],int length)//和普通指针变量完全一样,所以避免混淆,最好使用指针变量作为形参。