须要注意一点,通常所说的指针实际是“指针变量”的简称,一个指针变量可以被赋予不同的指针值;而指针则是一个地址,是一个常量
可以通过下面的方式来定义一个指向变量的指针:
类型说明符 *变量名;
*表示定义的是一个指针变量,变量名即为定义的指针变量名,类型说明符表示指针变量所指向变量的数据类型。
eg: int *zhizheng;
首先理解地址运算符“&"的作用。在C语言中用 ,
“&”加上变量名称表示变量的地址,因此&test1表示的是变量testl的地址。在程序中,有对指针进行赋值的方式:
void test2(){ char test1='A',test2='D'; char *p1=&test1; char *p2; lr_output_message("p1=%c",*p1); p2=&test1; test1 = 'U'; lr_output_message("p1=%c",*p2); *p2 = 'B'; lr_output_message("p1=%c,p2=%c,test1=%c",*p1,*p2,test1); test2 = *p2; lr_output_message("test2=%c",test2); } 结果: p1=A Action.c(29): p1=U Action.c(32): p1=B,p2=B,test1=B Action.c(36): test2=B
Action(){ int test =10; int *p=&test; Temp(test); lr_output_message("test=%d",test); Square(p); lr_output_message("test=%d",test); return 0; } void Square(int *p){ *p=(*p)*(*p); } void Temp(int p){ p = p*p; }