小程序 手机网站,在工商网站上怎么做电话的变更,兰州市城乡建设局网站公布的信息,做广告的软件app有哪些数组指针与指针数组
数组指针
概念#xff1a;数组指针是指向数组的指针#xff0c;本质上还是指针
特点#xff1a; 先有数组#xff0c;后有指针 它指向的是一个完整的数组
一维数组指针#xff1a; 语法#xff1a; 数据类型 (*指针变量名)[行容量][列容量]; 案…数组指针与指针数组
数组指针
概念数组指针是指向数组的指针本质上还是指针
特点 先有数组后有指针 它指向的是一个完整的数组
一维数组指针 语法 数据类型 (*指针变量名)[行容量][列容量]; 案例 //数组指针指向数组的指针这里不是指向数组元素的指针int mian(){//一维数组指针//先有数组再有指针int arr[] {100,200,300};//获取数组的元素个数int len sizeof(arr)/sizeof(arr[0])// int *p arr;//实际上指向了数组的第一个元素 p//定义一个数组指针指向arr这个数组int (*p)[3] arr; //此时p不是指向arr数组的第一个元素而是指向arr这个数组本身printf(%p,p);// p; 此时p会跳出整个数组,访问到一块未知的内存程序中尽量避免这种写法// 如何访问数组指针printf(%d\n,(*p)[2]); // 300//遍历for(int i 0; i len; i){printf(%d\n,(*p)[i]); }return 0;}
我们之前所学的是指向数组元素的指针本质上还是指针变量现在我们学的是指向数组的指针叫做数组指针。
二维数组指针 语法 数据类型 (*指针变量名)[容量]; 案例
写法1
#include stdio,hint main(){//创建一个普通的二维数组int arr[][3] {10,20,30,100,200,300,1000,2000,3000};int len sizeof(arr)/sizeof(arr[0]);//创建一个二维数组指针//一个二维数组本质上还是一个一维数组只不过它的元素也是数组int (*p)[3][3] arr;printf(%d,(*p)[1][0]);//遍历for(int i 0; i len; i){for(int j 0; j len ; j){printf(%-5d\n,(*p)[i][j]);}printf(\n);}}
写法2
#include stdio,hint main(){//创建一个普通的二维数组int arr[][3] {10,20,30,100,200,300,1000,2000,3000};int len sizeof(arr)/sizeof(arr[0]);//创建一个二维数组指针//一个二维数组本质上还是一个一维数组只不过它的元素也是数组int (*p)[3] arr; // 10printf(%d,(*p)[0]); //10//获取元素2000//三种写法内部为行外部为列printf(2000-%d,%d,%d,*(*(p2)1),*(p[2]1),p[2][1]);return 0;} 指针和数组中符号优先级 [] * 通过指针引用多维数组 案例1
需求用指向元素的指针变量输出二维数组元素的值 #include stdio.h//用指向元素的指针变量指向二维数组元素的值int main(){//定义一个普通的二维数组int arr[3][4] {1,3,5,7,9,11,13,15,17,19.21.23};//定义一个指针变量用来接收二维数组的元素值int *p arr[0]; // arr[0][0]//循环遍历for(;p arr[0] 12;p){//每4个换行if((p - arr[0]) % 4 0){printf(\n);}printf(%-4d,*p)}printf(\n);return 0;} 案例2
需求数组指针-输出二维数组任一行一列元素的值
#include stdio.h//数组指针-输出二维数组任一行一列元素的值int arr_main1(){//定义一个二维数组int arr[3][4] {1,3,5,7,9,11,13,15,17,19.21.23};//创建一个一维的数组指针指向二维数组int (*p)[4] arr; //等价于arr[0] , p代表我们这个二维数组// 创建两个变量代表我们对应数据的行和列int row,col;//通过控制台来输入printf(请输入行号和列号\n);scanf(%d,%d,row,col);printf(arr[%d][%d] %d\n,row,col,*(*(prow)col));//*(*(prow)col),*(p[row]col),p[row][col]}int main(){return 0;} 指针数组
概念指针数组是一个数组数组中的每一个元素都是一个指针
特点 先有指针后有数组 指针数组的本质是一个数组只是数组中的元素类型为指针
语法 数据类型 *数组名[容量];int *arr[4];//int (*arr)[4] 这个是数组指针#include stdio.hint main(){// 定义三个变量int a 10,b 20,c 30;//定义指针数组指针数组用来存放指针的int *arr[3] {a,b,c};//获取数组大小int len sizeof arr / sizeof arr[0];//遍历数组for(int i 0 ; i len ;i){printf(%-3d,*arr[i]);//输出每个指针指向的值需要解引用}return 0;}
建议我们一般使用指针数组处理字符串