C和C++语言中->和.的区别

本文详细解释了C++语言中使用'.'和'->'符号访问结构成员的区别,通过实例展示了它们在直接寻址和间接寻址上的应用。

C++语言中".""->"都是用来访问结构成员的符号,这一点的确没有区别,区别在于符号的左边。

"." 通过结构名直接访问结构成员,左边是结构的名称!(类似于直接寻址)

"->"通过指向结构的指针间接地访问结构成员,左边是指针变量!(类似于间接寻址)

可能说的不大明白,下面举一个例子:

typedef struct Param

{

  int Devil;

  int Bios;

}PARAM;


typedef struct tagShMem

{

   PARAM  stDevilBox[10];

}ShMEM;


void InitShMem()

{

  ShMEM* qi = new ShMEM;

  qi->stDevilBox[3].Devil = 2;  (1)

...

...

}

仔细看(1)就清楚了。


### C语言中的 `->` 运算符 在C语言中,`->` 是箭头运算符,用于通过结构体指针访问结构体成员变量。例如,当有一个指向结构体的指针时,可以使用 `->` 来访问该结构体的成员。这种用法在操作硬件寄存器等底层编程中非常常见,例如在单片机编程中对GPIO寄存器进行操作: ```c typedef struct { unsigned int CRL; } GPIO_TypeDef; GPIO_TypeDef *GPIOC; // 假设GPIOC已经正确指向某个GPIO寄存器结构体 GPIOC->CRL = 0x00000001; // 使用箭头运算符访问寄存器并赋值 ``` ### C++中的 `->` 运算符 在C++中,`->` 被称为类成员访问运算符,也称为箭头运算符。它用于通过对象指针访问类、结构或联合的公共成员。这个运算符是两个运算符的组合:减号运算符(-大于运算符(>)。例如: ```cpp struct Student { int age; }; Student s; Student* ptr = &s; ptr->age = 20; // 使用箭头运算符访问成员变量 ``` ### PHP中的 `->` 运算符 在PHP中,`->` 称为对象运算符或单箭头运算符。它用于访问类对象的方法属性,也可以用于访问JSON对象的元素。例如: ```php class Person { public $name; public function sayHello() { echo "Hello, " . $this->name; } } $person = new Person(); $person->name = "Alice"; // 使用箭头运算符访问属性 $person->sayHello(); // 使用箭头运算符调用方法 ``` ### 其他语言中的 `->` 运算符 虽然C语言C++PHP中的 `->` 运算符主要涉及结构体、类或对象成员的访问,但在其他一些语言中,`->` 可能具有不同的含义用途。例如,在某些函数式编程语言中,`->` 可能用于表示函数的返回类型或参数传递的方向。然而,具体用法会根据语言设计的不同而有所变化,因此在不同编程语言中使用 `->` 时,需要参考该语言的文档规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值