/*权限问题
int *p
int const *p
const int *p
int * const p
int const * const p
const int * const p
*/
//int *p 可读可写,可移动访问其他内存单元(最高权限)
//const int *p
//int const *p
//const int *p 等价于 int const *p, 限定只能读不可以写,地址可以移动
//int * const p 限定不可以访问其他内存单元,对指向的内存单元可读可写
//const int * const p 限定不可以访问其他内存单元,对指向的内存单元只能读不可写
//int const * const p
//const int * const p 等价于 int const * const p
#include <stdio.h>
#include <stdlib.h>
//const int *p限定写入权限
void main1()
{
int num = 10;
const int data = 20;//只有初始化的时候可以赋值,const限定你不能随便修改
const int *p = &data;//p是指向常量的指针
//*p = 3;//error,不能修改指向的常量
p = #//地址可以改变,可以不指向const,类型只存在一个解析方式问题
printf("%d\n", *p);//10
getchar();
}
//int const *p限定写入权限
void main2()
{
int num = 10;
int data = 20;
int const *p = #
p = &data;
//*p = 3;//error,不能修改指向的常量
printf("%d\n", *p);//20
getchar();
}
//int * const p 限定你吊死在一课树上
void main3()
{
int num = 10;
int data = 20;
int * const p = #//p为常量指针,不可修改
//p = &data;//error
*p = 15;
printf("%d\n", *p);//15
getchar();
}
//const int * const p 限定只能看,不可以修改,不可以看别的内存单元
void main()
{
int num = 10;
int data = 20;
const int * const p = &data;
//p = #
//*p = 3;
}
int *p
int const *p
const int *p
int * const p
int const * const p
const int * const p
*/
//int *p 可读可写,可移动访问其他内存单元(最高权限)
//const int *p
//int const *p
//const int *p 等价于 int const *p, 限定只能读不可以写,地址可以移动
//int * const p 限定不可以访问其他内存单元,对指向的内存单元可读可写
//const int * const p 限定不可以访问其他内存单元,对指向的内存单元只能读不可写
//int const * const p
//const int * const p 等价于 int const * const p
#include <stdio.h>
#include <stdlib.h>
//const int *p限定写入权限
void main1()
{
int num = 10;
const int data = 20;//只有初始化的时候可以赋值,const限定你不能随便修改
const int *p = &data;//p是指向常量的指针
//*p = 3;//error,不能修改指向的常量
p = #//地址可以改变,可以不指向const,类型只存在一个解析方式问题
printf("%d\n", *p);//10
getchar();
}
//int const *p限定写入权限
void main2()
{
int num = 10;
int data = 20;
int const *p = #
p = &data;
//*p = 3;//error,不能修改指向的常量
printf("%d\n", *p);//20
getchar();
}
//int * const p 限定你吊死在一课树上
void main3()
{
int num = 10;
int data = 20;
int * const p = #//p为常量指针,不可修改
//p = &data;//error
*p = 15;
printf("%d\n", *p);//15
getchar();
}
//const int * const p 限定只能看,不可以修改,不可以看别的内存单元
void main()
{
int num = 10;
int data = 20;
const int * const p = &data;
//p = #
//*p = 3;
}