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)调用。

posted @   煮茶听风雨  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示