什么是指针?
指针也就是内存地址,指针变量是用来存放内存地址的变量。
- 指针变量中存放的信息则是某个内存地址。打个比方,可以将指针变量比喻为一张门牌,内存地址比喻为门牌号,那么你就可以通过这个门牌上写的门牌号找到对应的房间。
指针的声明
指针的声明格式一般为:
type *var_name;
- 此处的type 是指针的基类型,它必须是一个有效的 C 数据类型(int,double,float,char),
- var_name是指针变量的名称。用来声明指针的星号 * 与乘法中使用的星号是相同的。但是,在这个语句中,星号是用来指定一个变量是指针。
- 所有实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,对应指针的值的类型都是一样的,都是一个代表内存地址的长的十六进制数。不同数据类型的指针之间唯一的不同是,指针所指向的变量或常量的数据类型不同。
- &是取地址符,假设:int a; 那么&a表示的是a地址。
指针的使用
#include <stdio.h>
int main ()
{
int a = 10;
int *p;
p = &a;
printf("a变量的地址: %p\n", p);
return 0;
}
运行结果:
a变量的地址: 0x001
-
p是一个int * 类型的变量,也就是一个指针变量。对指针的操作通过使用一元运算符 * 来返回位于操作数所指定地址的变量的值。 -
假设变量a的地址是0x001,指针变量p的地址是0x666。执行完对指针变量p的赋值之后: *p = 10 p = 0x001 &p = 0x666
以上是指针最最最基本的知识,作为初学者一定要掌握这些。我记得我上大一时老师讲到这就结束了并未深入讲解,如果你后续需要学到数据结构这门课,那么还需要深入的学习指针。这里推荐B站的一个课程《郝斌C语言》,里面关于指针讲解的非常详细!
|