在c语言中,星号(*)运算符用于解引用指针变量,获取所指向变量的值;地址运算符(&)用于获取变量地址。具体比较如下:解引用指针:*取地址:&指针乘法:*位运算:&

C语言中*和&运算符解析与比较
在C语言中,星号(*)运算符和地址运算符(&)运算符是两个重要的运算符,经常用于指针操作和内存管理。本文将深入解析它们的用途和区别,并提供实战案例进行说明。
星号(*)运算符
立即学习“C语言免费学习笔记(深入)”;
星号运算符用于解引用指针变量,获取它所指向的变量值。语法:*指针变量
例如:
int *ptr = &i;printf(“%d”, *ptr); // 打印i的值
地址运算符(&)运算符
地址运算符用于获取一个变量的地址,返回一个指向该变量的指针。语法:&变量名
例如:
int i = 10;int *ptr = &i;printf(“%p”, ptr); // 打印i的地址
比较运算符
以下是*和&运算符在不同场景下的比较:
*解引用指针获取指向变量的值&取地址获取变量的地址*指针乘法计算指针指向内存空间的大小&位运算(逻辑AND)对两个整数进行逻辑与操作
实战案例
以下是一个实战案例,演示了*和&运算符如何用于指针操作:
#include int main() { int i = 10; int *ptr = &i; // ptr指向i // 通过解引用指针获取i的值 printf("i的值:%dn", *ptr); // 通过取地址获取i的地址 printf("i的地址:%pn", &i); // 通过指针乘法计算ptr指向的内存空间大小 int size = sizeof(*ptr); printf("ptr指向内存空间大小:%d字节n", size); // 使用指针进行递增 (*ptr)++; // 打印递增后的i值 printf("递增后的i:%dn", i); return 0;}
输出:
i的值:10i的地址:0x7ffe5247ef4cptr指向内存空间大小:4字节递增后的i:11
以上就是C语言中*和&运算符解析与比较的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1446765.html
微信扫一扫
支付宝扫一扫