typedef后面有*是什么意思
时间: 2024-02-21 16:34:52 浏览: 134
在C++中,typedef关键字用于为某种类型定义一个新的名称。如果typedef后面有*,则表示为指向某种类型的指针定义一个新的名称。例如,以下代码定义了一个名为Ptr的指向整数的指针类型:
```
typedef int* Ptr;
```
现在,可以像下面这样使用Ptr类型:
```
Ptr p = new int;
*p = 42;
```
这将创建一个指向整数的指针,并将其赋值为42。
相关问题
typedef struct后面加*
在 C 语言中,`typedef` 可以用来定义新的类型别名。如果在 `typedef` 后面加上 `*`,则表示定义的是一个指向结构体的指针类型别名。
例如,下面的代码定义了一个名为 `NodePtr` 的类型别名,它是一个指向 `Node` 结构体的指针类型:
```
typedef struct Node {
int data;
struct Node *next;
} *NodePtr;
```
这样,在其他代码中就可以用 `NodePtr` 来代替 `struct Node*`,比如:
```
NodePtr head = NULL;
head = malloc(sizeof(struct Node));
head->data = 42;
head->next = NULL;
```
注意,这里的 `struct Node` 是在 `sizeof` 中使用的,而不是在声明 `head` 的时候。因为 `NodePtr` 已经表示了一个指向 `Node` 结构体的指针类型,所以在声明指针变量时不需要再加上 `struct` 关键字。
typedef struct后面加*指针
在 C 语言中,typedef 可以用来为已有类型定义一个新的名称,从而使代码更加易读和易维护。而在 typedef 结构体时,可以在结构体名称后面加一个 * 指针符号,表示该结构体类型是一个指针类型。
例如:
```
typedef struct student {
int id;
char name[20];
} *StudentPtr;
```
上面的代码将 struct student 定义为一个指针类型 StudentPtr,这样可以使用 StudentPtr 来定义结构体变量,而不需要写成 struct student *。
例如:
```
StudentPtr s = (StudentPtr)malloc(sizeof(struct student));
s->id = 1;
strcpy(s->name, "Tom");
```
这样就定义了一个名为 s 的学生指针变量,并对其进行了初始化。
阅读全文