语言中哪一种形式声明了一个指向char类型变量的指针p,p的值不可修改,但p指向的变量值可修改?
int a;
const (常量)后面有*(指针)号,即常量指针
*(指针)号后面有const (常量),即指针常量
常量指针:(error:常量是一个指针) 指向一个常量的指针,也可以指向其他量,指向地址可以变化。
指针常量: 指针是一个常量,指向地址不可变化,但是指向的地址里面内容可以变化。
#include <stdio.h> int main(void) { int i=-1,j=7; int* const a = &i; //a = &j; 错误,不能对变量空间经行更改 printf("%d\n", *a); *a = 5; printf("%d\n", *a); const int* b = &i; b = &j; printf("%d\n", *b); //*b = 5; 错误,不能对变量空间内的值进行修改 printf("%d\n", *b); return 0; }
【解析】const 限定一个数据为只读属性。
1.const char p; 限定变量 p 为只读。
2.const char *p; p 为一个指向 char 类型的指针,const 限定 p 指向的数据为只读。所以 *p 的值不能被修改,而指针变量 p 本身的值可以被修改。
3.char * const p; 限定此指针变量为只读,所以 p 的值不能被修改,而 *p 的值可以被修改。
【const 和指针知识点讲解】
更多C++基础专业知识讲解,点击链接即可查看
https://www.nowcoder.com/link/zxyl-cpp83