1.const修饰的变量不可以通过直接的赋值进行修改,会出现报错
当const修饰指针变量时,当const在“*”的左边时,则不能通过指针变量改变指针指向的内容,但指针变量本身可以改变;当const在“*”的右边时,则与上相反。
2.assert的作用在于,当传入的值为非目标值时,可以主动提供错误信息,减少修改代码bug的难度
3.下面是一个应用实例strcpy()函数的模拟实现
#include<stdio.h>
#include<assert.h>
//const限制*src无法被进行赋值操作,即出现*src++ = *dest++编译器会报错
char* my_strcpy(char* dest, const char* src) {
//assert的作用在于,当传入的值为非目标值时,可以主动提供错误信息,减少修改代码bug的难度
assert(dest != NULL);
assert(src != NULL);
char* ret = dest;
//*dest++ = *src++的返回值即为*dest++,当不为\0时循环可以持续进行
while (*dest++ = *src++)
{
;
}
return ret;
}
int main() {
char arr1[] = "hello by000000123";
char arr2[20] = "xxxxxxxxxxxxxxxxxxx";
printf("%s\n", my_strcpy(arr2, arr1));
return 0;
}
运行结果为: