1 const与变量
#include<stdio.h>
int main(){
const int a = 100;
//a = 90; ERR readonly
return 0;
}
2 cost与指针
(1) const int *p1
(2) int const *p2
(3) int * const p3
(1)(2)情况,指针所指向的数据是只读的,也就是p1,p2本身的值可以修改,但是他们指向的数据不能被修改
(3)情况,指针是只读的,也就是p3的本身的值不能被修改,他们指向的数据可以被修改
#include<stdio.h>
int main(){
int num = 10;
const int *p = #
int num1 = 11;
p = &num1;
//*p = 10; ERR
printf("p = %d\n",*p);
int const *p1 = #
p1 = &num1;
//*p1 = 100; ERR
printf("p1 = %d\n",*p1);
int * const p2 = &num1;
*p2 = 100;
//p2 = &num ERR
printf("p2 = %d\n",*p2);
return 0;
}
const和函数形参
const 通常用在函数形参中,如果形参是一个指针,为了防止在函数内部修改指针指向的数据,就可以用 const 来限制。
#include<stdio.h>
void print(int *p,int *p1){
*p = 100;
*p1 = 100;
printf("p = %d, p1 = %d\n",*p,*p1);
}
void print1(const int *p, int * const p1){
int num = 1000;
p = #
//*p = 100; ERR
*p1 = 1000;
//p1 = #
printf("p = %d, p1 = %d\n",*p,*p1);
}
int main(){
int num = 10;
int *p = #
int *p1 = #
print1(p,p1);
return 0;
}