最近因为项目在写c代码,发现指针基础知识都已经开始忘了,仅此留下笔记以便以后复习。
指针变量的声明和初始化
指针变量把内存地址作为它们的值。通常,变量包含特定的值。但是,指针包含的是包含特定值的变量的内存地址,即:变量名直接引用数值,而指针间接引用数值,如下图所示。注意:在图中,通常把指针表示为一个变量指向另一个变量的箭头,前者包含一个地址值,后者则是在内存中位于该地址的变量。
和其他变量一样,指针在使用前必须被声明。上图中的指针声明如下:
int *countPtr, count;
声明了countPtr是int*类型的(即一个指向int值的指针),读作“countPtr是一个指向int的指针”,或“countPtr指向一个 int类型的对象”。注意:count是一个int类型的变量,但不是指向int的指针。
指针可以在声明时或在赋值语句中初始化。指针可以被初始化为0,NULL或地址。值为0或NULL的指针不能指向任何对象,称为空指针。只有整数0可以直接赋值给一个指针变量,而其他整数要先强制转换成一个指针类型。
指针运算符
- 指针运算符&