const修饰一般变量的时候:
int const number =2 或者 const int number = 2;
修饰指针的时候,反正我每次都搞不清,但是这次却永远记住了!
修饰指针的时候,有如下几种情况:
const int *p //p可变,但是p指向的内容不可变
int const * p //p可变,但是p指向的内容不可变
int * const p //p不可变,p指向的对象可变
const int *const p //指针p和p指向的对象都不可变
如何记忆这东西呢,看的人都晕头转向,有如下方法:
(此方法在陈正冲老师的总结中看到,可以拜读他的《C语言深度剖析(第二版)》)
const
int* p 此时可以把int划掉,留下的就是const *p,p是指针,而*p表示的是指针指向的对象,不可变
intconst *p 同上
int* const p const修饰的是p,p不可变,p指向的对象可变
const
int* const p;前一个const修饰*p, 后一个const修饰p指针,指针p和p指向的对象都不可改变。
总结起来就是离谁近,靠近谁,就修饰谁。很好的记忆方法。
const在修饰函数的参数时,也会有如下一个知识点:
const修饰函数参数的时候,原因是不希望这个参数值在函数体内有变化,被随意修改。故而用const修饰,比如:
void func(const int *p) 目的是告诉编译器,在函数体内*p的内容不能改变。
1946

被折叠的 条评论
为什么被折叠?



