一、const
1.简介
const是constant的缩写,译为恒定不变/定值。定义变量时在前面用const声明,使变量无法改变。
int main() {
const int i = 1;
i++;
printf("%d\n", i);
return 0;
}
执行上述代码会报错,表示const修饰变量无法更改。
2.const修饰指针变量
(1)const放在 * 左边修饰
int main() {
int i = 1;
const int* p = &i; //对于*p,可把*看作解地址符,p是i的地址,那*p其实就是i本身。所以const放在*左边,代表不能通过*p来修改i,但p本身可以改变
*p = 9;
printf("%d\n", i);
printf("%p\n", p);
return 0; //报错,无法修改*
}
int main() {
int i = 1;
const int* p = &i;
p = 9;
printf("%d\n", i);
printf("%p\n", p);
return 0; //没报错,成功把p修改为9
}
(2)const放在 * 右边修饰
int main() {
int i = 1;
int* const p = &i; //const修饰指针p, p本身不能改变
p = 9; //报错
*p = 9; //不报错,可以通过*p修改i
printf("%d\n", i);
printf("%p\n", p);
return 0;
}
二、assert
assert断言,如果括号中的表达式结果为真,则代码继续进行;如果为假,则终止代码,并且报错。
需要引用头文件<assert.h>
int main() {
int i = 0;
scanf("%d", &i); //必须输入非0数,输入0会报错,并终止程序
assert(i !=0);
return 0;
}