1. 代码
#include <stdio.h>
void fun(const char *p)
{
*p = 'a';
}
void main()
{
char arr[] = "123";
fun(arr);
}
2. 编译
D:\baoli\Desktop
λ gcc test.c
test.c: 在函数‘fun’中:
test.c:6:5: 错误:向只读位置‘*p’赋值
*p = 'a';
^
3. 分析
形参p指向const char类型(只读char),所以编译报错,这可以防止在函数内部修改p指向的内存,因为有时候我们并不希望p指向的内存被修改。