最近一直在准备笔试,补补大一大二欠下的课。复习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就没问题了~

  


相关文章:

  • 2022-03-03
  • 2022-02-09
  • 2021-09-05
  • 2021-11-14
  • 2021-06-01
猜你喜欢
  • 2021-10-17
  • 2021-07-07
  • 2021-08-01
  • 2021-07-29
  • 2021-12-17
  • 2021-12-27
相关资源
相似解决方案