* a = b和a =& b之间的差异?

时间:2015-11-16 10:21:56

标签: c pointers

之间有什么区别(如果有的话)
*a = b;

a = &b;

这两种不同的方法是使var指向另一个var吗?

5 个答案:

答案 0 :(得分:6)

不,他们不会做同样的事情。 *a = b;不会更改a,但会更改a指向的内容。 a = &b;确实更改a,但它不会更改a指向的内容。

答案 1 :(得分:1)

这是两种不同的操作。

*a = bb的值复制到a指向的内存位置。

a = &b更改a,以便现在a指向b的位置。

答案 2 :(得分:1)

*a = b表示b指向的地址中a的复制值

a = &b表示a现在指向b

答案 3 :(得分:1)

以下代码的和平应该回答你的问题:

#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

答案 4 :(得分:0)

作为一个小例子:

int b=10,c=20;
int *a=0;
a=&b; *a=c; 

现在您将b的值更改为c

的值