*运算在C语言中,有两种作用:
1
用作乘法,为双目运算符,形式为a*b,
就是计算数学中的a乘以b。
2
用作取值运算,为单目运算符,根据后续操作数(必须为指针)类型,取其指向的值。
所谓的指针,本质上就是地址。
指针变量的值,就是地址的值,当取值运算时就是到对应的内存地址上,依照指针类型进行取值。
*就是指针运算符;
注意区别
初始化时
int
a;
int
*p=&a
;
赋值时
int
a,*p;
p=&a;
*的作用是取地址里的操作数;
*p==a;
指针变量里面就是整型的一个十六进制数,用来表示的就是指向某个变量的地址
int
*p;
就是定义一个整形的指针变量,它用于存放一个整形变量(比如int
i;)的内存地址,可以在其他函数里通过内存地址调用i,而"*"运算符是从通过指针存放的地址读取对应变量的值的
编程中指针在使用以后,灵活多用,可以取别名来取地址
而地址操作符很繁琐,每次必须使用引用的变量
就如同指路:指针相当于你用地图来指
取地址符相当于你不能用路名,不能用门牌号码,不能用参照物。
int
a=10;
int
*p=&a;
printf("a=%d\n",*p);
在定义部分的int
*p=&a,表示p的类型是int
*,也就是指向int类型的指针
printf语句中的*p,表示取出地址p中的值,也就是a的值,10