1.自我介绍:一名普通的跨专业研一学生
2.学习目标:成为一名c++开发工程师
3.学习路线:c语言—>数据结构与算法—>c++>linux—>数据库....由浅入深,并不断巩固计算机自称原理,操作系统等基本功。
4.每日规划:尽可能的多敲代码,多练习,多总结
今日学习小结~
关于指针数组 &数组指针的用法与区别
1.指针数组
本质:存放指针的数组;
int arr[]={0};//整型数组,存放整型变量的数组
int ch[5]={0};//字符数组,存放字符型变量的数组
int*arr[5];//指针数组
case:
int main()
{
//先定义三个数组
int arr1[]={1,2,3,4,5};
int arr2[]={2,2,3,8,5};
int arr3[]={1,7,3,9,5};
//定义一个指针数组存储这三个数组
int*parr[3]={arr1,arr2,arr3};
//如何打印每一个元素呢?
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%d",*(parr[i] + j));//各个数组首元素的地址+向后走一步
}
printf("n");
}
return 0
}
2.数组指针
本质:指向数组的指针——存放数组的地址
int arr[]={1,2,3,4,5,6,7,8,9,0}
int(*p)[10]=&arr;//p是数组指针,指向数组arr;
一个基本用法:打印二维数组
常规方法:
arr传入
printf01(arr, 3, 5);
int arr[3][5]接收
void printf01(int arr[3][5],int x,int y)
再函数中用嵌套的for循环输出arr[i][j];
数组指针方法:
arr传入
printf2(arr, 3, 5);
用一个数组指针接收
void printf2(int(*p)[5], int x, int y)
注意事项:二维数组的首元素问题
指针p——指向首元素的地址—>一维数组的地址
p相当于第一行的地址
p+1:第二行的地址
*(p+i)找到行,*(p+i)+j找到列
再解引用*(*(p+i)+j)即可



