C++指针
两种声明方式
int* p = new int;
*p = 1000;
int a = 1000;
int* p = &a;
数组名和指针的区别
-
指针的值可以修改,数组名是常量。
pointerName = pointerName + 1; //valid arrayName = arrayName + 1; //not allowed
-
sizeof(arrayName)为数组的长度,sizeof(pointerName)为指针的长度。均以字节为单位。
-
arrayName为指向数组第一个元素的指针,&arrayName为指向数组的指针。两个指针指向的内存是一样的,但指向的内存块大小不同。
在函数参数中,int a[] 和 int* a 是完全相同的,都表示指针。因此,为了将数组类型和元素数量都告诉数组处理函数,通常在函数参数中传入数组的长度。
函数指针
函数的地址
函数名,不带参数。
声明
声明指向函数的指针时,必须指定指针指向的函数类型。这意味着声明应指定函数的返回类型以及函数的参数。
double func(int); //函数
double (*pFunc)(int); //指向函数的指针
double *pFunc(int); //返回值为double* 的函数
调用
可以通过pFunc或(*pFunc)调用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人