C语言的灵魂指针,什么是指针变量?
C语言的灵魂指针,什么是指针变量?
原创2021-07-07 19:58·峰哥linux编程学堂
指针变量
学习了取地址运算符之后,我们可以使用取地址运算符取出一个变量的地址。例如:
编译结果如下:
可以看到,编译的时候,提示了warning警告;就是不可以把一个pointer初始化给int类型变量。此时,编译器提到的pointer就是指针。
C语言提供了指针的定义,指针变量可以存放一个变量的地址。指针变量的定义格式如下:
数据类型* 变量名;
指针变量的定义与变量的定义很相似,唯一的区别就是在数据类型后面跟着指针取值符号*,具体的定义说明如下:
(1) 数据类型,定义指针的类型,例如 int类型的指针;
(2) 在数据类型后面,接着指针取值运算符“*”,我们也称为:指针降级运算符;
(3) 变量名,是指针变量的变量名;注意,由于指针的英文是pointer,所以,指针变量名一般用字母p 开头,很直观这是一个指针变量,这是良好的编程风格;
例如:
char* p1; //定义指针变量p1,它是char* 类型,存放char类型变量的地址;
int* p2; //定义指针变量p2,它是int*类型,存放int类型变量的地址;
int a;
int *p3; //定义指针变量p3,它是 int* 类型,存放int类型变量的地址;
p3 = &a; //把变量a的地址赋给指针变量p3,指针变量p3指向变量a;
此时,指针变量p3存放了变量a的地址,那么,我们称:指针变量p3“指向”变量a。我们需要明白指针的“指向”概念。有如下图:
可以看到,指针变量p3是一个变量,它有自己的内存空间。当执行p3 = &a;代码之后,就把变量a的地址赋给指针变量p3,指针变量p3的内存空间,存放的是变量a的地址。
所以,指针变量p3存放了变量a的地址。那么,我们就称为:指针变量p3指向变量a。
赞 (0)