#include <stdio.h>
#include <stdlib.h> int main(void)
{
int *p1;
int * *pp1;
const int * *pp2; const int n = 13;
printf("起初const int n = %d\n", n);
pp1 = &p1;
pp2 = pp1;
*pp2 = &n; /*  间接的使p1=&n  */
**pp1 = 10;
printf("二层间接赋值后const int n = %d\n", n);
system("pause"); return 0;
}

编译命令:

gcc -Wall -ansi -pedantic a.c

输入a.exe后运行查看结果

绝不要进行两层间接非const指针赋值给const指针-LMLPHP

可以发现编译的时候有个警告,运行时常量n的值已经被更改。

05-08 15:51