指向常量的指针与常量指针
const int *p; //p是一个变量,指向一个常量
int *const p; //p是一个常量,指向一个变量或常量
c语言的const是有问题的,因为可以通过指针变量间接的修改const常量的值,所以在c语言中用#define常量的时候更多
在c++里面没有这个漏洞,是改不了的
#include<stdio.h> int mian() { int a = 0; const int *p = &a; //p可以指向一个int类型的地址,但不可以用*p的方式修改这个内存的值 a = 10; printf("%d\n", *p); //可以用*p的方式读取a的值 const int b = 100; int *p1; p1 = &b; //p1 =(int *) &b;有worring进行了强转 *p1 = 0; printf("b = %d\n", b); int *const p2 = &a; //p2指向了a的地址,p2只能指向a的地址 //p2是常量指针,只能指向一个固定的变量地址,但可以通过*p2读写这个变量的值 return 0; }