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

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

在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中的内容也也会被修改


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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,827评论 3 44
  • 1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧...
    金巴多阅读 5,876评论 0 9
  • 版权声明:本文为 gfson 原创文章,转载请注明出处。注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢...
    gfson阅读 8,677评论 0 6
  • C语言中内存分配 在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是...
    一生信仰阅读 4,954评论 0 2
  • House 是我这些年跟过的美剧里面让我最无法割舍的。 如果说CSI是因为习惯在跟的话,House就真的是因为被大...
    叶恪阅读 3,508评论 0 1

友情链接更多精彩内容