C *a=b和a=&;之间有什么区别;B

C *a=b和a=&;之间有什么区别;B,c,pointers,C,Pointers,鉴于: *a=b和a=&b之间有什么区别吗?第一个,*a=b将变量b的值复制到a指向的位置 第二个a=&b将b的地址复制到a int **a; // (double pointer) int *b; // (pointer) 您正在将b的值分配给a指向的任何位置 *a = b; 这里您将b的地址分配给a*a=b将b分配给a指向的内存位置 a=&b将b的地址分配给变量a&由运算符获取变量的地址 int **a; // (double pointer) int *b; // (point

鉴于:


*a=b
a=&b
之间有什么区别吗?

第一个,
*a=b将变量
b
的值复制到
a
指向的位置

第二个
a=&b
b
的地址复制到
a

int **a; // (double pointer)
int *b;  //  (pointer)
您正在将
b
的值分配给
a
指向的任何位置

*a = b;

这里您将
b
的地址分配给
a

*a=b
b
分配给
a
指向的内存位置


a=&b
b
的地址分配给变量
a

&
由运算符获取变量的地址

int **a; // (double pointer)
int *b;  //  (pointer)
*
是能够检索指针指向的值的运算符,即您应该调用此过程的间接寻址


是的,这两种说法是不同的。

我想这里的问题是这两种说法在实践中有什么区别。这个例子说明了这一点:

a = &b;

z指向的值不会更新为新的x值20,而y指向的值会更新。

*a=b:*a是一个指针变量,它存储另一个变量的地址,即b和
a=&b:a只是一个普通变量,它存储b的地址,即使它存储b的地址,它也不会存储完整的地址,这取决于数据类型

您的问题标题与问题正文不匹配。哪一个是正确的?我不明白,什么不匹配?你觉得呢?为什么你们不能推断出
=
符号两侧的外压类型?@VigneshVenkat它现在被编辑了。您原来的问题不匹配。@Cicada oops,很抱歉。谢谢