int fun(int p){}
int fun(const int p){}
在函数内,p和实参是值传递,简单复制一下就ok(执行int p=a或者const p=a)。
int fun(int *p){}
int fun(const int *p){}
在值传递的时候是int *p=a,此时如果a是常量的,因为非const不能赋值给非const所以就会报错,这里也就产生了它们之间的差异,引用同理。
int fun(int p){}
int fun(const int p){}
在函数内,p和实参是值传递,简单复制一下就ok(执行int p=a或者const p=a)。
int fun(int *p){}
int fun(const int *p){}
在值传递的时候是int *p=a,此时如果a是常量的,因为非const不能赋值给非const所以就会报错,这里也就产生了它们之间的差异,引用同理。