《2022年指针用法总结资料 .pdf》由会员分享,可在线阅读,更多相关《2022年指针用法总结资料 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、简单变量 a 定义指针 p,p 指向 a int *p=&a;( 或 int *p; p=&a) 通过指针 p 改变 a的值为 4 int *p=&a; *p=4; 函数形参用指针主函数一般不用指针,用简单变量 , 简单变量的地址作为参数的实参, 通过指针 p 对 a变量进行操作 (修改) void fun(int *p) main() int a=4; fun(&a) 一维数组 a6 指针 p 一维数组 a int *p=a;(或 int *p; p=a) 定义指针 p,p 指向 a(p指向 a数组的第一个元素 , p的值为 a数组的首地址 ,或数组第一个元素的地址) 通过 p 改变一个数组
2、元素为 4 *(p+i)=4; / 等价于 ai=4; 或 pi=4; int *p=a; 通过 p遍历数组a for(i=0;isize;i+, p+) *p=.;/改变 p 指向的元素的值 int *p=a; 通过 p遍历数组a for(i=0;isize;i+) pi =.;/改变 p 指向的元素的值 函数形参用指针主函数一般不用指针,用一维数组 , 数组名 a 和数组实际元素数目 size作为参数的实参 , 通过指针p对 a变量进行操作 (修改 ) void fun(int *p, int size) main() int a5=4; fun(a,5) 二维数组 a34 ; 行指针定义
3、列指针 p,p 指向 a 数组第一行第一列元素int *p=*a;( 或 int *p; p=*a) 通过列指针 p 改变一个数组元素为4 *(p+i*4+j)=4; / 等价于 aij=4; int *p; p=*a; 通过 p 遍历数组 a for(i=0;i3;i+) for(j=0;j3;j+) *(p+i*4+j) =.;/改变 p 指向的元素的值 函数形参用列指针主函数一般不用指针,用一维数组 , 数组名 a和数组实际元素数目size作为参数的实参 , 通过指针 p 对 a 变量进行操作(修改) void fun(int *p, int size) main() int a5=4;
4、 fun(*a,5) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 二维数组 a34 列指针定义行指针 p,p 指向 a 数组第一行第一列元素int (*p)4=a;(或int (*p)4; p=a) 通过行指针 p 改变一个数组元素为4 *(*(p+i)+j)=4; /等价于aij=4; 通过行指针 p 改变一个数组元素为4 pij=4; /等价于 aij=4; 通过行指针 p 遍历数组 a for(i=0;i3;i+) f
5、or(j=0;j3;j+) *(*(p+i)+j)=.;/改变 p 指向的元素的值 通过行指针 p 遍历数组 a for(i=0;i3;i+) for(j=0;j3;j+) pij=.;/改变 p 指向的元素的值 函数形参用列指针主函数一般不用指针,用一维数组 , 数组名 a和数组实际元素数目size作为参数的实参 , 通过指针 p 对 a 变量进行操作(修改) void fun(int (*p), int size) main() int a5=4; fun(a,5) 动态申请内存空间方法1: 用函数申请内存空间 , 返回内存空间的首地址 (指针常量) #include int * haha
6、(int n)/通过返回值传递指针 int i,*p,*q; /该内存空间只会在程序结束或碰到free 释放时才被收回/该内存空间在不同的函数都可以通过指针访问p = (int *) malloc(n * sizeof (int);/ 可以理解为申请一维数组n个元素q=p; for(;qp+4;q+) *q=q-p;/或 q /*遍历也可用下面等价的方法for(i=0;i4;i+) qi=i;/ */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - return p; main () int *qq,n=4,*pp; qq=haha(4);/ 返回内存空间的首地址pp=qq; for(;ppqq+4;pp+) printf(%dt,*pp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -