美文网首页
C语言中 * 和 &的实际理解

C语言中 * 和 &的实际理解

作者: Poison_19ce | 来源:发表于2017-06-01 11:27 被阅读0次

& 是位操作运算符 *代表指针

在C语言中 

&可以用来拿到变量在内存中存储的地址 

*可以用来拿到对应地址中的具体内容

比如 :

int a=123;

直接printf        printf("a = %d",a);       可以直接获得 打印 123 内容

直接 printf       printf("a = %p",&a);    打印的地址是 0x.............一个十六进制的地址

那么我们定义一个指针变量

int *b = NULL;

b = &a;  //*b代表指针变量 而 b只能赋值为地址 

当我们想要拿到指针 *b 中的内容的时候     printf("%d",*&b);    打印的结果与a变量是一样的

在之前 我们已经把变量a的值赋给了*b  

现在 *b的值也就是 123

如果我们对 *b的值进行重新赋值

*b = 512;

那么打印结果 

printf("a = %d\n",a);

printf("b = %d\n",*b);

// a = 512  b = 512;

为什么会这样呢?

因为在赋值之后 指针*b  指向 变量a 这个时候 相当于 指针*b直接指向了 a的内存 所以 对指针*b做修改的时候就是对那块内存中的内容进行修改 所以修改了 *b后 变量a中的内容也也会被修改

最终总结我的理解 只有一句话

&是为了拿到变量的内存地址  而 *就是为了拿到对应内存地址中的内容

相关文章

  • C语言中 * 和 &的实际理解

    & 是位操作运算符 *代表指针 在C语言中 &可以用来拿到变量在内存中存储的地址 *可以用来拿到对应地址中的具体内...

  • C语言基础6

    结构体概述 1 在C语言中,结构体(struct)指的是一种数据结构,是C语 言中构造类型的其中之一。 2 在实际...

  • C语言中<<、>>、&、|的实际用途

    作为一个开发人员,在看别人项目或者看第三方库的源代码时,可能经常会看到譬如a>>4&0x0f这样的写法,对于一些初...

  • oc-理解对类、对象等概念

    OC是基于C语言的面向对象的语言。C语言中没有对象的概念,为了便于开发者理解和使用面向对象的思想,OC将C语言中的...

  • C/C++类型转换及类型转换重载

    C/C++类型转换 C风格类型转换 C语言中的类型转换, 实际上强迫编译器根据程序员的选择来解释目标. C语言中仅...

  • C语言中同步和异步的理解

    现在我在main.c这个文件中,调用360浏览器。 分析过程:在my.exe里面继续打开另外一个程序,所以就涉及到...

  • 理解C语言中的a++、a--和++a、--a

    C语言中 a++ a-- 和 ++a --a 的区别 a++ 表示先赋值再进行加运算a-- 表示先赋值再进行减运算...

  • 理解c语言中的static

    我们通过程序控制计算机的执行过程,就像是利用咒语来控制魔法精灵。我们要知道了精灵的名字,才能召唤他。这一个个名字便...

  • C语言变量的内存实质

    一、先来理解C语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质,所以我就从“变量”这个东西开...

  • C语言中__packed 和位段的理解

    一:__packed typedef __packed struct struct常用在数据结构中。而struct...

网友评论

      本文标题:C语言中 * 和 &的实际理解

      本文链接:https://www.haomeiwen.com/subject/pxgsfxtx.html