指针*--和--*有区别吗
时间: 2023-10-08 22:11:24 浏览: 192
是的,"*--和--*"与指针"*--与--*"的区别在于,"*--和--*"通常表示两个事物的合并或者组合,而指针"*--与--*"表示两个变量之间的关联或者指向关系。在C或C++语言中,"*--和--*"通常用于指针的运算符中,表示解引用操作,而"*--与--*"用于声明指针变量或者指针类型。例如,"*p"表示指针p所指向的变量的值,而"int *p"表示p是一个指向整型变量的指针。
相关问题
(*指针)->结构体成员和指针->结构体成员有什么区别
指针 -> 结构体成员是通过指针访问结构体内部的成员变量。这种方式需要先通过指针解引用获取结构体本身,然后使用箭头运算符 "->" 来访问结构体的成员。
例如,假设有一个指向结构体的指针 `ptr`,结构体中有一个成员变量 `member`,那么通过 `ptr->member` 就可以访问到该成员。
而指针 -> 结构体成员是直接通过指针访问结构体内部的成员变量。这种方式不需要解引用指针,而是使用点运算符 "." 来访问结构体的成员。
例如,假设有一个结构体变量 `struct_var`,结构体中有一个成员变量 `member`,那么通过 `(*ptr).member` 或者 `ptr->member` 都可以访问到该成员。
总结起来,指针 -> 结构体成员需要先解引用指针,再使用箭头运算符;而指针 -> 结构体成员直接使用点运算符来访问。
C语言指针中,.和->的区别
在C语言中,`.`和`->`都是用来访问结构体变量成员的操作符,但它们有显著的不同:
1. `.`(句点操作符):当作用于非指向结构体或联合类型的指针时,`.`用于访问普通变量或对象的成员。例如:
```c
struct Person {
char name[20];
int age;
};
struct Person person;
person.name = "Alice";
```
在这里,`person.name`就是使用`.`操作符访问`name`字段。
2. `->`(箭头操作符):专门用于访问通过指针间接引用的结构体或联合类型的成员。当我们有一个指向结构体的指针时,如`struct Person *ptr;`,就可以用`->`来访问该结构体的成员,如下:
```c
struct Person *ptr = &person;
ptr->name = "Bob"; // 使用箭头操作符访问结构体成员
```
`ptr->name`等价于`(*ptr).name`,这里的`*`解引用指针,然后`.`再访问成员。
总结来说,`.`用于直接访问变量自身的成员,而`->`用于通过指针访问结构体或联合的成员。记住,只有当左侧是实际的指针或已解引用的指针时,才能使用`->`。
阅读全文