wap手机网站描述正确的是建e网怎么做效果图
news/
2025/10/9 12:47:56/
文章来源:
wap手机网站描述正确的是,建e网怎么做效果图,wordpress全部文件夹,自己开发网站怎么盈利这里写目录标题 字符指针字符指针与常量字符串的区别#xff1a; 指针数组数组指针两者的区别#xff1a;数组名 #xff0c;sizeof(arr)数组指针的使用数组参数#xff0c;指针参数一维数组传参整型数组#xff1a;整型指针数组#xff1a; 一级指针传参二级指针传… 这里写目录标题 字符指针字符指针与常量字符串的区别 指针数组数组指针两者的区别数组名 sizeof(arr)数组指针的使用数组参数指针参数一维数组传参整型数组整型指针数组 一级指针传参二级指针传参 字符指针
字符指针char* 一般用法
#includestdio.h
int main()
{char ch w;char* p ch; // 将字符变量ch的地址放在了字符指针p中return 0;
}另一种表示方法
#includestdio.h
int main()
{const char* p hello csdn.;printf(%c\n, *p);//打印字符hprintf(%s\n, p);//打印字符串hello csdn.return 0;
}字符指针p中存放的是字符串的首元素地址,即字符’h’的地址。
字符指针与常量字符串的区别
#include stdio.h
int main()
{char str1[] hello csdn.;char str2[] hello csdn.;char *str3 hello csdn.;char *str4 hello csdn.;if (str1 str2)printf(str1 and str2 are same\n);elseprintf(str1 and str2 are not same\n);if (str3 str4)printf(str3 and str4 are same\n);elseprintf(str3 and str4 are not same\n);return 0;
}运行结果
指针数组 数组指针
整型指针是指向整型的指针,字符指针是指向字符的指针数组指针应该就是指向数组的指针了.
数组指针也是一样我们只需取出数组的地址并将其存入数组指针即可。
#includestdio.h
int main()
{int arr[10] { 0 };int(*p)[10] arr;//arr - 数组的地址return 0;
}数组的类型是int [10]
两者的区别
首先p是一个指针所以p必须要先与 * 结合而[ ]的优先级要高于 * 所以我们要加上( )以便让p与 * 先结合。 数组名 sizeof(arr)
数组名代表整个数组的地址的情况其实只有两种
数组名。数组名单独放在sizeof内部即sizeof(数组名)。 除此之外所有的数组名都是数组首元素地址。
#includestdio.h
int main()
{int arr[5] { 1, 2, 3, 4, 5 };int* p1 arr;//数组首元素的地址int(*p2)[5] arr;//数组的地址printf(%p\n, p1);printf(%p\n, p2);printf(%p\n, p11);printf(%p\n, p21);return 0;
}运行结果
数组指针的使用
数组指针有一个简单的使用案例那就是打印二维数组
#includestdio.h
void print(int(*p)[5], int row, int col)
{int i 0;for (i 0; i row; i)//行数{int j 0;for (j 0; j col; j)//列数{printf(%d , *(*(p i) j));}printf(\n);//打印完一行后换行}
}
int main()
{int arr[3][5] { { 1, 2, 3, 4, 5 }, { 2, 3, 4, 5, 6 }, { 3, 4, 5, 6, 7 } };print(arr, 3, 5);//传入二维数组名即二维数组首元素地址即二维数组第一行的地址return 0;
}pi:是第i行的首地址.
*(pi):是第i行第0列元素的地址.
*(pi)j:是第i行第j列元素的地址.
*(*(pi)j):是第i行第j列元素所对应的值.数组参数指针参数
一维数组传参
#includestdio.h
void test1(int arr[10])//数组接收
{}
void test1(int *arr)//指针接收
{}
void test2(int *arr[20])//数组接收
{}
void test2(int **arr)//指针接收
{}
int main()
{int arr1[10] { 0 };//整型数组int *arr2[20] { 0 };//整型指针数组test1(arr1);test2(arr2);
}整型数组
当向函数传入整型数组的数组名时我们有以下几种参数可供接收
数组传参数组接收我们传入的是整型数组那我们就用整型数组接收。传入的数组名本质上是数组首元素地址所以我们可以用指针接收。数组的元素类型是整型我们接收整型元素的地址用int * 的指针即可。
整型指针数组
当向函数传入整型指针数组的数组名时我们有以下几种参数可供接收
数组传参数组接收我们传入的是整型指针数组那我们就用整型指针数组接收。指针接收数组的元素是int * 类型的我们接收int * 类型元素的地址用二级指针int ** 即可。 注意一维数组传参函数形参设计时[ ]内的数字可省略。
一级指针传参
#includestdio.h
void print(int* p, int sz)//一级指针接收
{int i 0;for (i 0; i sz; i){printf(%d , *(p i));}
}
int main()
{int arr[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int sz sizeof(arr) / sizeof(arr[0]);int* p arr;//一级指针print(p, sz); // 直接print (arr ,sz) 也可以return 0;
}二级指针传参
#includestdio.h
void test(int** p)//二级指针接收
{}
int main()
{int a 10;int* pa a;int** paa pa;test(paa);//二级指针return 0;
}函数的参数可以传递什么形式 以下三种
#includestdio.h
void test(int** p)
{}
int main()
{int a 10;int* pa a;test(pa);//可以传入一级指针的地址int** paa pa;test(paa);//可以传入二级指针int* arr[10];test(arr);//可以传入一级指针数组的数组名//...return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932552.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!