最近一直在准备笔试,补补大一大二欠下的课。复习c语言时碰见这么个题:
|
1
2
3
4
5
|
int a=248, b=4;
int const c=21;
const int *d=&a;
int *const e=&b;
int const * const f =&a;
|
请问下列表达式哪些会被编译器禁止?
A:*c=32
B:*d=43
C:e=&a
D:f=0x321f
E:d=&b
这里百度百科里介绍了一个方法:
const在*的左边,则指针指向的变量的值不可直接通过指针改变(可以通过其他途径改变);在*的右边,则指针的指向不可变。简记为“左定值,右定向”但是一定要注意,int * const p; int const * const p; 或者 const int * const p;这三种表示都是指针指向不能改变的,定义时要初始化一个地址。
基本上const就没问题了~