一.什么是数组指针? 即是数组的指针.首先它是一个指针,指向数组,指针本身占4个字节. 二.数组指针的使用 int a[3][5]; int (*p)[5]; p=&a; 第二行定义了一个数组指针,p是指针名,指向一个含有5个int类型数据的数组.注意括号一定不要省略,否则就是指针数组. 第三行将数组a首地址赋值给指针. 三.为什么要使用数组指针? 使用数组指针是为了更方便地操作二维数组.来看栗子: int a[3][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}…
定义一个数组指针,指向二维数组: int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int (*p)[4];//定义二维指针数组 p=a;//指向二维数组,数组指针等同于二维数组名 #include<stdio.h> int main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int (*p)[4];//定义二维指针数组 p=a;//指向二维数组 for(int i=0;i<3;i…
1.思考 下面这些声明合法吗? int array[5]; int matrix[3][3]; int * pa = array; int * pm = matrix; 问题: array代表数组首元素的地址,那么matrix代表什么? array和&array的地址值相同,但是意义不同,那么它们所代表的类型相同吗? 2.数组类型 C语言中的数组有自己特定的类型 数组的类型由元素类型和数组大小共同决定 例: int array[5]的类型为int[5] 3.定义数组类型 C语言中通过typede…
指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定.它是“储存指针的数组”的简称. 数组指针:首先它是一个指针,它指向一个数组.在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.它是“指向数组的指针”的简称. 下面到底哪个是数组指针,哪个是指针数组呢: A) int *p1[10]; B) int (*p2)[10]; 这里需要明白一个符号之间的优先级问题.“[]”的优先级比“*”要高.p1 先与“[]”结合,构成一个数组的定义,数组名为p1,i…