lsfreeing 2020-01-10
const int*p; //p可变,p指向的内容不可变 int const*p; //p可变,p指向的内容不可变 int* const p; //p不可变,p指向的内容可变 const int* const p; //p和p所指向的内容都不可变
#include <stdio.h> int main() { int i = 0; const int *p1 = &i; int const *p2 = &i; int* const p3 = &i; const int * const p4 = &i; p1 = NULL; //ok *p1 = 1; //error p2 = NULL; //ok *p2 = 1; //error p3 = NULL; //error *p3 = 1; //ok p4 = NULL; //error *p4 = 1; //error return 0; }
运行结果:
1>------ 已启动全部重新生成: 项目: 常量和指针, 配置: Debug Win32 ------ 1> main.c 1>j:\c语言练习题\常量和指针\常量和指针\main.c(15): error C2166: 左值指定 const 对象 1>j:\c语言练习题\常量和指针\常量和指针\main.c(18): error C2166: 左值指定 const 对象 1>j:\c语言练习题\常量和指针\常量和指针\main.c(20): error C2166: 左值指定 const 对象 1>j:\c语言练习题\常量和指针\常量和指针\main.c(23): error C2166: 左值指定 const 对象 1>j:\c语言练习题\常量和指针\常量和指针\main.c(24): error C2166: 左值指定 const 对象 ========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========