运算符&和*

来源:互联网 发布:linux 合并相同文件夹 编辑:程序博客网 时间:2024/06/08 06:00

&为取地址运算符;

*为解地址符;

eg:

#include <stdio.h>

int main()

{

  int a=10;  //分配内存

  int b=20;   (b=10

    printf("a address is \n",&a);  //打印出a的地址 eg:0xbf3f3f35

    printf("baddress is \n",&b);  //打印出b的地址 eg: 0xbf3f3f31

    printf("a = \n",*(&a));  //取a的值 10

    printf("b = \n",*(&b));  //取b的值 20

    printf("a address is \n",&(*(&a)));   //打印出a的地址 0xbf3f3f35

    printf("b address is \n",&(*(&b)));   //打印出b的地址 0xbf3f3f31    (当b=10 时,此处打印b的地址并不会改变)

}

注意:如果b=10;

&(*(&b))b的地址,*解地址后再取地址并不会对*地址后的b的内存(对象)操作

0 0
原创粉丝点击