#include <stdio.h>
int main()
{
int value = 10;
int *ms = &value;
printf("value:%d||&:%p\n",value, &value);
const int* const CannontMaodify = &value;
printf("CannontMaodify:%p||&:%p||*:%d\n",CannontMaodify,&CannontMaodify,*CannontMaodify);
int** maodify = &CannontMaodify;
printf("**maodify = 1;\n--------------------\n");
**maodify = 1;
printf("maodify:%p||&:%p||*:%p||**:%d\n", maodify, &maodify, *maodify,**maodify);
printf("maodify = &ms;\n--------------------\n");
printf("ms:%p||&:%p||*:%d\n",ms, &ms,*ms);
printf("CannontMaodify:%p||&:%p||*:%d\n", CannontMaodify, &CannontMaodify, *CannontMaodify);
maodify = &ms;
printf("maodify:%p||&:%p||*:%p||**:%d\n", maodify, &maodify, *maodify, **maodify);
printf("-------------------------------------------------------------------\n");
return 0;
}
运行结果:
未完成,等指针-const进阶的教程写完更新这个程序讲解,目前可以试试自己了解。
本文章主要讲:
编译器可以把声明带 const 限定类型的对象放到只读内存中,const 语义仅应用到左值表达式;只要在不要求左值的语境中使用 const 左值表达式,就会丢失其 const 限定符
注(名称解释):
value为 值、CannotMaodify为 不可修改
maodify为 可修改,ms 为 可修改
#include <stdio.h>
int main()
{
int value = 10;
int *ms = &value;
printf("value:%d||&:%p\n",value, &value);
const int* const CannontMaodify = &value;
printf("CannontMaodify:%p||&:%p||*:%d\n",CannontMaodify,&CannontMaodify,*CannontMaodify);
int** maodify = &CannontMaodify;
printf("**maodify = 1;\n--------------------\n");
**maodify = 1;
printf("maodify:%p||&:%p||*:%p||**:%d\n", maodify, &maodify, *maodify,**maodify);
printf("maodify = &ms;\n--------------------\n");
printf("ms:%p||&:%p||*:%d\n",ms, &ms,*ms);
printf("CannontMaodify:%p||&:%p||*:%d\n", CannontMaodify, &CannontMaodify, *CannontMaodify);
maodify = &ms;
printf("maodify:%p||&:%p||*:%p||**:%d\n", maodify, &maodify, *maodify, **maodify);
printf("-------------------------------------------------------------------\n");