[牛人杂谈] C语言变量前面加星号是什么意思

[复制链接]
1317|4
 楼主| 两只袜子 发表于 2025-3-28 16:05 | 显示全部楼层 |阅读模式
变量前面加星号
鄙人第一次看到这个问题的时候,也是一愣,而且首先想到的是Python中的解构字典和可变参数(解构字典在比较新的版本的Python中有),后来又想了想,认为C语言变量前面加星号可能指的是指针。比如下面这段代码:
#include <stdio.h>int main(void){   
char str1[] = "abc";   
char *p = str1;   
printf("%s",p);   
return 0;}
如上代码,变量str1是一个字符数组,实际上,也是一个指针,而且指向的是数组中的第一个字符的指针,然后又定义了一个指针变量p,用来指向数组变量,因此,也是一个指向字符数组第一个字符('a')所在的内存地址的指针。简单验证实际上,我们可以分别输出str1和p所指向的内存地址,来简单验证,比如下面的这段代码(输出的应该是相同的值):
#include <stdio.h>int main(void){   
char str1[] = "abc";   
char *p = str1;   
printf("%p\n",(void*)&str1[0]);   
printf("%p\n",(void*)p);
  return 0;}

免责声明:内容仅供参考,不保证正确性,不作任何决策依据!
stormwind123 发表于 2025-3-28 16:34 | 显示全部楼层
C语言变量前面加星号可能指的是指针。
水星限定 发表于 2025-8-28 13:26 | 显示全部楼层
C 语言中变量前加星号()表示该变量是指针变量,用于存储另一个变量的内存地址。通过指针可间接访问所指向变量的值,如int *p;定义指向整数的指针。解引用时也用,如*p = 5;表示给 p 指向的变量赋值 5。指针需初始化后使用,避免野指针错误。
捉虫天师 发表于 2025-8-28 20:31 | 显示全部楼层
*是指针啊
捉虫天师 发表于 2025-8-28 20:31 | 显示全部楼层
如果不是定时阶段那就表示通过地址取变量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2122

主题

8121

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部