zl程序教程

您现在的位置是:首页 >  其它

当前栏目

指针常量和常量指针

指针 常量
2023-09-14 09:02:06 时间
指针常量:一个指针,并且它是一个常量,它的值不许被改变; char *const p1 = Hello! //必须在定义的时候初始化,因为它是常量 p1 = NiHao! //错误,不允许对常量赋值 常量指针:一个指针,并且它指向对象是一个常量(

这2个概念非常容易混淆,即使是老鸟,也有眩晕的时候,写此博文,加深记忆...

 

指针常量:一个指针,并且它是一个常量,它的值不许被改变;

char *const p1 = "Hello!"; //必须在定义的时候初始化,因为它是常量 p1 = "NiHao!"; //错误,不允许对常量赋值

 

常量指针:一个指针,并且它指向对象是一个常量(不许改变),但该指针本身的值可以被改变;

const char *p2 = "Hello!"; //可以不初始化 p2 = "NiHao!"; //正确


指针和引用(2)指针常量与常量指针 1.知识点 1.1指针常量——指针类型的常量 (1)指针常量本质是常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。 (2)在指针常量中,指针的值不可变,即始终指向同一个地址。 (3)但指针所指向的地址的值是可以通过*p来改变的。
指针和引用(3)指针数组和数组指针 1.知识点 1.1指针数组——存放指针的数组 (1)指针数组本质上是一个数组,指针是数组中的内容,表示数组中的每个元素都是指针,因此指针数组就是存放指针的数组。下面是指针数组的用法: 1 int a = 10, b = 20; 2 int *p[3]; 3 p[0] = &a; 4 p[2] = &b; (2)指针数组的定义可以抽象为:指向变量类型 * 数组名称[数组长度]。
函数指针数组的指针 下面定义一个简单的函数指针数组的指针: char* (*(*pf)[3])(char* c); pf是一个指针,这个指针指向一个有3个元素的数组,每个元素是一个参数为char* ,返回值为char *的指针。