洛阳青峰做网站,品牌策划公司命名,wordpress图片自动加广告,小程序直播系统开发文章目录 5. 指针和数组6. 二级指针7. 指针数组 附#xff1a; 5. 指针和数组 指针变量#xff1a;指针变量就是指针变量#xff0c;不是数组#xff0c;指针变量的大小是4/8个字节#xff0c;专门是用来存放地址的。 数组#xff1a;数组就是数组#xff0c;不是指针 5. 指针和数组 指针变量指针变量就是指针变量不是数组指针变量的大小是4/8个字节专门是用来存放地址的。 数组数组就是数组不是指针数组是一块连续的空间可以存放1个或者多个类型相同的数据。 两者之间的联系 数组中数组名其实是数组首元素的地址数组名 地址 指针 当我们知道数组首元素的地址的时候因为数组又是连续存放的所以通过指针就可以遍历访问数组 数组是可以通过指针来访问的 #include stdio.hint main()
{int arr[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int i 0;int sz sizeof(arr) / sizeof(arr[0]);int* p arr;for (i 0; i sz; i){//printf(%p %p\n, p i, arr[i]);printf(%d , *(p i));}return 0;
}6. 二级指针
指针变量也是变量是变量就有地址那指针变量的地址存放在哪里 这就是二级指针。
#include stdio.hint main()
{int a 10;int* p a;//p是一级指针变量指针变量也是变量变量是在内存中开辟空间的是变量就有地址int** pp p;//pp就是二级指针变量二级指针变量就是用来存放一级指针变量的地址//*(*pp) 100;**pp 100;printf(%d\n, a);//int** * ppp pp;return 0;
}举个例子
int main()
{char arr1[] abcdef;char arr2[] hello world;char arr3[] cuihua;char* parr[] { arr1, arr2, arr3 };char** p parr;return 0;
}7. 指针数组
指针数组是指针还是数组 答案是数组是存放指针的数组。
数组我们已经知道整形数组字符数组那指针数组是怎样的
#include stdio.hint main()
{char arr1[] abcdef;char arr2[] hello world;char arr3[] cuihua;//指针数组char* parr[] { arr1, arr2, arr3 };int i 0;for (i 0; i 3; i){printf(%s\n, parr[i]);}/*char arr[] abcdef;printf(%s\n, arr);*/return 0;
}#include stdio.hint main()
{int arr1[] { 1, 2, 3, 4, 5 };int arr2[] { 2, 3, 4, 5, 6 };int arr3[] { 3, 4, 5, 6, 7 };//指针数组int* parr[] { arr1, arr2, arr3 };int i 0;for (i 0; i 3; i){int j 0;for (j 0; j 5; j){printf(%d , parr[i][j]);//printf(%d , *(parr[i] j));//和上面等价}printf(\n);}return 0;
}附
指针初阶1