1.const用法:
1.c与c++ const对比
c中的const量,只是一个可读的变量,可以通过强制转换其指针来改变值。
。 1 #include<stdio.h> 2 3 int main() 4 { 5 const int c=0; 6 int * p=(int*)(&c); 7 *p=1; 8 printf("%d\n",c); //用gcc编译c=1,用g++编译c=0 9 }
c中const量不能用于数组
1 const int d=8; 2 int len[d]; //error
2. 指向常量的指针和常指针
1 const int *pointer 2 int *const pointer
c++强类型转换一般约束只会增强,不会削弱。
比如:
1 int a=0; 2 const int b=0; 3 const int *pointer(&a) //正确 4 const int *pointer(&b) //正确 5 int *cosnt pointer(&a) //正确 6 int *cosnt pointer(&b) //错误
3,4两行无论是const还是非const变量的地址,对于指向常量的指针都无关紧要。
而第6行,把const变量的地址赋给常指针(可以修改值),类型转换某种意义上是削弱了,不能通过const变量的地址来修改值。
时间: 2024-11-02 23:32:41