1、指针变量作为函数参数
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
void app_main(void)
{
int a=100,b=200;
swap(a,b);
int *pointer1,*pointer2;
pointer1=&a;
pointer2=&b;
printf("a_addr:%p,b_addr:%p\r\n",pointer1,pointer2);
if(a<b)
swap(pointer1,pointer2);
printf("max=%d,min=%d\r\n",a,b);
while(1)
{
vTaskDelay(1000/ portTICK_PERIOD_MS);
}
}
调用函数swap()后,p1等同于pointer1,都指向于变量a,p1的值为&a,指针变量*p1等于a。
2、数组元素的指针
下面两个语句等价
*p等价于a[0]。
*(p+i)和a[i]无条件等价
3、指针引用字符串
4、指向函数的指针
5、指向指针数据的指针
指向指针数据的指针变量:char **p;
**p相当于*(*p)
指针数组的元素只能存放地址,不能存放整数。