C *a=b和a=&b之间的区别?
如果有的话,它们之间的区别是什么C *a=b和a=&b之间的区别?,c,pointers,C,Pointers,如果有的话,它们之间的区别是什么 *a = b; 及 这两种不同的方法可以使一个var指向另一个var吗?不,它们做的事情不同*a=b;不会改变a,但会改变a指向的内容。a=&b;确实改变了a,但它没有改变a所指的内容。这是两种不同的操作 *a=b将b的值复制到a指向的内存位置 a=&b更改a,因此现在a指向b的位置。*a=b表示a指向的地址中b的副本值 a=&b表示a现在指向b,作为一个小例子: int b=10,c=20; int *a=0; a=&b; *a=c; 现在您将b
*a = b;
及
这两种不同的方法可以使一个var指向另一个var吗?不,它们做的事情不同*a=b;不会改变a,但会改变a指向的内容。a=&b;确实改变了a,但它没有改变a所指的内容。这是两种不同的操作 *a=b将b的值复制到a指向的内存位置 a=&b更改a,因此现在a指向b的位置。*a=b表示a指向的地址中b的副本值 a=&b表示a现在指向b,作为一个小例子:
int b=10,c=20;
int *a=0;
a=&b; *a=c;
现在您将b的值更改为c的值以下代码和平应该可以回答您的问题:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
int a = 5;
int b = 10;
int *p = &b;
printf("A = %d\nB = %d\n*p = %d\n",a,b,*p);
*p = a;
printf("\n");
printf("A = %d\nB = %d\n*p = %d\n",a,b,*p);
return 0;
}
int*a=0和int a=0有什么区别?如果没有任何上下文,这个问题就没有多大意义。a和b是什么?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
int a = 5;
int b = 10;
int *p = &b;
printf("A = %d\nB = %d\n*p = %d\n",a,b,*p);
*p = a;
printf("\n");
printf("A = %d\nB = %d\n*p = %d\n",a,b,*p);
return 0;
}
A = 5
B = 10
*p = 10
A = 5
B = 5
*p = 5