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 个 ==========