1.const关键字
const关键字经常用来修饰常量,也就是说当有个变量你不希望改变时,可以用const来修饰
const int num=20;
num=30;//错误,const修饰的变量不可改变
2.const与指针
const关键字位置不同,修饰侧重点不同,就会呈现不同的效果
2.1当const在类型前面,修饰的是指针变量num所指向的内容,如 const int* num
此时const修饰的是 指针变量num所指向的内容,表示指针变量 num 所指向的内存单元里面的内容不可变,指针变量num是可变的
错误信息:
2.2当const修饰指针变量时,如 int* const num
此时 const 修饰的是指针变量 num,所以指针变量 num 不可变,指针变量num所指向的内容可变。
指针变量不可修改:
指向值可修改:
2.3当const在类型前和指针变量前都有,如 const int* const num
此时表示指针变量 num 所指向的内存单元里面的内容不可变,指针变量num也不可变的
两者均不可修改;
3.模拟strcmp()函数,const与指针应用
形参用const修饰,保护内存的值不被误改
int my_strcmp(const char* str1,const char * str2) {
while ( *str1 == *str2) {
if (!*str1) {
return 0;
}
str1++;
str2++;
}
return *str1 - *str2;
}
int main() {
char* str1 = "abcde";
char* str2 = "dbcde";
int result=my_strcmp(str1, str2);
printf("%d", result);
}
输出-3;
4.总结
指针可以对内存内容直接操作,用指针一定要注意初始化等一系列,避免野指针的出现,const与指针结合使用,有效的保护了内存的内容