在c语言中,星号(*)运算符用于解引用指针变量,获取所指向变量的值;地址运算符(&)用于获取变量地址。具体比较如下:解引用指针:*取地址:&指针乘法:*位运算:&
C语言中*和&运算符解析与比较
在C语言中,星号(*)运算符和地址运算符(&)运算符是两个重要的运算符,经常用于指针操作和内存管理。本文将深入解析它们的用途和区别,并提供实战案例进行说明。
星号(*)运算符
- 星号运算符用于解引用指针变量,获取它所指向的变量值。
- 语法:*指针变量
-
例如:
- int *ptr = &i;
- printf(“%d”, *ptr); // 打印i的值
地址运算符(&)运算符
- 地址运算符用于获取一个变量的地址,返回一个指向该变量的指针。
- 语法:&变量名
-
例如:
- int i = 10;
- int *ptr = &i;
- printf(“%p”, ptr); // 打印i的地址
比较运算符
以下是*和&运算符在不同场景下的比较:
运算符 | 场景 | 作用 |
---|---|---|
* | 解引用指针 | 获取指向变量的值 |
& | 取地址 | 获取变量的地址 |
* | 指针乘法 | 计算指针指向内存空间的大小 |
& | 位运算(逻辑AND) | 对两个整数进行逻辑与操作 |
实战案例
以下是一个实战案例,演示了*和&运算符如何用于指针操作:
#include <stdio.h> 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的值:10 i的地址:0x7ffe5247ef4c ptr指向内存空间大小:4字节 递增后的i:11
登录后复制
以上就是C语言中*和&运算符解析与比较的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:weapp,转转请注明出处:https://www.dingdanghao.com/article/300775.html