提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
提示:以下是本篇文章正文内容,下面案例可供参考
一、指针的定义和作用
指针=内存地址
指针变量=存储着内存地址的变量
注意:指针名字为p而不是*p
指针具体体现
下面的代码才是真正的交换
指针的第二个作用:可以返回多个值
指针的第三个作用:把函数的结果和状态分开
指针的第四个作用:方便操作数组和函数
二、指针的运算
void让上述函数更有通用性
三:二级指针
有两种二维数组定义格式
p是二级指针,*p获取的是指向一维数组的指针,即*p=arr1,**p才是一维数组里的具体值
int arr[3][5] = { {1,2,3,4,5},{11,22,33,44,55},{111,222,333,444,555} };
int(*p)[5] = arr;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
printf("%d ", *(*p + j));
}
printf("\n");
p++;
}
二者是获取指针的方式不同
这里的二维数组存放的不是具体数据而是两个内存地址所以是*p——int**p
In summary:
数组指针就是指针
指针数组就是数组
其实数组和指针都是地址,只不过数组是常量,指针是变量
四:函数指针
int (*p[4])(int, int) = {add,sub,mul,de};
函数指针的细节:这里的函数指针数组是只有形参完全相同而且返回值类型也要一样的函数,才能放到同一个函数指针数组当中
总结
提示:这里对文章进行总结:
:以上就是今天要讲的内容,本文仅仅简单介绍了指针的使用和各种用法,而指针能使我们快速便捷地处理数据的函数和方法。