c语言中 指针和结构体
时间: 2024-10-22 22:06:51 浏览: 26
深入理解C语言指针和结构体
在C语言中,指针和结构体都是非常重要的概念。
**指针**:指针是一种变量,它存储的是内存地址。通过指针,可以直接访问存储在该地址的数据。C语言中有两种类型的指针:普通指针和空指针。普通指针指向某个特定类型的数据,而空指针则指向NULL,表示没有指向任何有效的内存地址。指针运算允许我们修改变量的值或动态分配内存。比如,声明一个整型指针并指向一个变量:`int *p = &x;`,其中`*p`就是指向`x`的值。
**结构体**:结构体是一种用户自定义的数据类型,它可以组合不同类型的变量,形成一个新的复合数据类型。结构体成员可以在内存中连续存放,可以看做是将不同数据项打包在一起。定义一个结构体的例子如下:
```c
typedef struct {
int num;
char name[20];
} Student;
```
这里定义了一个名为`Student`的结构体,包含了`num`和`name`两个成员。创建结构体变量就像这样:`Student stu;`,然后你可以通过`.`运算符来访问和修改其成员。
**结合使用**:指针也可以用来操作结构体。例如,我们可以定义指向结构体的指针,像这样:`Student *ptr = &stu;`,然后通过`(*ptr).num`访问结构体的成员。
阅读全文