请问int * k=i和int * k=&i的区别?
int * k=&i声明了一个指针k,指向i,k中存放的是i的地址吗?
参考GPT和自己的思路:
int k=i是将i的值赋给变量k,k中存放的是i的值。
int * k=&i是声明了一个指针k,指向i,k中存放的是i的地址。
因此,int * k=&i声明了一个指针k,指向i,k中存放的是i的地址。
这个要看i是什么,如果i是指针,那么就是第一种,如果i是值,就是第二种
// 如果 i是int型的话,int * k = &i ,这是k指向i,k里面存的是i的地址。
// int *k = i,这两者类型不匹配,硬要赋值,需要强转,把i这个值强转成int *
int *k = (int *)i; // 把i这个值当成地址
在C++中,int k=i和int k=&i是两个不同的语句,它们的含义如下:
因此,int k=i和int k=&i的区别在于前者定义的是一个普通变量,后者定义的是一个指针变量。在使用上,前者可以直接使用变量名k来访问其值,后者需要通过指针运算符来访问i的值,如:k。同时,指针变量k还可以被用来访问i以外的其他变量的值,只需要修改k的指向即可。
希望以上解释能够解决您的问题。如有疑问,请随时追问!
不知道你这个问题是否已经解决, 如果还没有解决的话: