实际上我不知道普通指针和const指针有什么区别,如果我使用下面的代码,它将正常工作.但是当我改变const
到 int *ptr=#
那时它将无法工作.谁能解释普通指针和const指针之间的区别?
int main(void)
{
int num = 20;
int *ptr = &num ; // if i change to `int *const ptr = &var1;` then it shows some error
*ptr = 20 ; // Valid
ptr ++ ; // valid
return 0;
}
Run Code Online (Sandbox Code Playgroud)
int* const ptr = &num ;
Run Code Online (Sandbox Code Playgroud)
将创建一个指向int的常量指针.它指向的数据可以改变,但它自己的指针不能改变.
你不能改变指针:
ptr++ ;
Run Code Online (Sandbox Code Playgroud)
但是你可以改变数据:
*ptr = 1234 ;
Run Code Online (Sandbox Code Playgroud)