int num=10;
int data=5;
const int value=10;
不能再给value
赋值
const int *p=#
const 放到int的左边,修饰的是指针所指向的值,可以修改指针地址但是不能通过(p)修改内容
int const *p =#;
const放到的左边,修饰的是指向的值,不能修改 值,但是可以修改指针 比如p=$data;
int * const p=#
const放到的右边,修饰的是指针,可以修改值,不能修改指针 p=&data;
报错
int const * const p=&num
地址不能修改 ,值也不能修改 p =$num
或者 *p=3;
都是错误的。
const int * const p
应该和上面是等价的。
规律const
在号左边就是指向的值是常量,在右边就是地址是常量
也就是上面这么多const
修饰的姿势,实际上总结出来只有这么几个逻辑,要么地址不可写,要么是值不可写,要么地址和值都也不可写。
char [] str="ffffff";
可以修改每一个*str=''
;正确,是数组第一个元素。
char * p="fffff";//不可以修改
*p=''```;错误 ,是常量