声明指针
本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 2 课,共 63 课。
现在你已经了解了指针是什么,接下来学习如何创建指针。声明指针变量时需要遵循特定的语法,以告知编译器指针将指向哪种数据类型。
声明指针的基本语法是:data_type *pointer_name;
int *ptr; // 声明一个指向整数的指针
char *ch_ptr; // 声明一个指向字符的指针
float *f_ptr; // 声明一个指向浮点数的指针星号(*)表示这是一个指针声明。它告诉编译器,这个变量将存储内存地址,而不是实际的数据值。声明 int *ptr; 时,你是在说:“ptr 是一个指针,可以存储整数变量的地址。”
如果指针尚未指向有效的内存地址,将它们初始化为 NULL 是一种好习惯。这样可以防止它们指向随机的内存位置:int *ptr = NULL;
使用 printf 打印指针地址时,请使用 %p 格式说明符。通常建议将指针强制转换为 (void *),以确保兼容性和格式正确:printf("%p", (void *)ptr);
注意,星号前的数据类型指定了指针将指向哪种数据。这一点很重要,因为不同的数据类型占用的内存空间不同,编译器需要知道这些信息,才能正确管理内存。
挑战
简单- 声明一个名为
int_ptr的整数指针,并将其初始化为NULL - 声明一个名为
char_ptr的字符指针,并将其初始化为NULL - 声明一个名为
float_ptr的浮点数指针,并将其初始化为NULL - 使用
printf和%p格式说明符,打印每个指针中存储的内存地址。打印时,将指针强制转换为(void*),以确保格式正确,例如:printf("Label: %p\n", (void*)ptr);
你的输出应按以下格式显示这三个指针地址:
Integer pointer: [address]
Character pointer: [address]
Float pointer: [address]请注意,实际的内存地址会有所不同,但格式和标签必须与上面显示的内容完全一致。
亲手试试
#include <stdio.h>
int main() {
// TODO: 在这里声明你的指针
// TODO: 按要求的格式打印指针地址
return 0;
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: C 在线编译器