c语言中的指针p->a
📅 2026/7/28 1:20:46
👁️ 阅读次数
📝 编程学习
入行十几年了,对p->a 这个符号只是熟悉,并没有真的理解。
看例子:
student *p;
p->name; // 可以用p->name取一个对象的属性,还是很跨越的。
这行代码的意思是:通过指针 p 所指向的那个 student 结构体,去访问它的 name 成员。
这里的 -> 叫做箭头操作符(或指向运算符)。它是 C 语言为了简化代码而提供的一种语法糖。p->name 在底层完全等价于 (*p).name。
c语言中,* -> . 这三个符号的含义:
* (星号)
这个符号根据它在代码中的位置不同,有几种不同的英文表达:
Asterisk
ˈæstərɪsk
(最正式的数学/符号名称)Star(程序员日常口语中最常用的说法)Dereference operator(当它用在指针前面取值时,比如 *p,它的专业术语叫“解引用操作符”)Pointer declarator(当它用在声明变量时,比如 int *p,表示这是一个指针)
口语举例:
️ -> (箭头)
这个符号长得就像个箭头,所以非常好记:
Arrow operator(最常用的叫法,“箭头操作符”)Structure pointer operator(教科书上偶尔会这么叫,“结构体指针操作符”)Member access via pointer(描述它的作用:“通过指针访问成员”)
口语举例:
. (点)
这个最简单,但在编程里有专门的术语:
Dot(最通俗的叫法,“点”)Dot operator(“点操作符”)Member access operator(它的专业术语,“成员访问操作符”)
口语举例:
总结一下
如果你在和外国同事结对编程(Pair Programming),你可以这样自然地表达:
编程学习
技术分享
实战经验