指针练习题
实例1:
void fun(int *p)
{
int a = 200;
*p = 100;
p = &a;
}
int main()
{
int x = 0;
int *s = &x;
fun(s);
printf("%d %d\n", x, *s);
return 0;
}
打印结果:100,100
int *p;声明指针变量
*p;指针的指向(指向一个地址)
实例2:
int main()
{
int ar[5] = {12, 23, 34, 45, 56};
int *p = ar;//int *p = &ar[0];
int x = 0;
int y = 0;
x = *p++;//x = 先赋值再++
y = *p;//y =++之后指向的地址
printf("%d%d\n", x, y);//打印结果:12,23
x = ++*p;//x = 先++再赋值
y = *p;//y = x
printf("%d%d\n", x, y);//打印结果:24,24
x = *++p;//x = 先++再赋值
y = *p;//y = x
printf("%d%d\n", x, y);//打印结果:34,34
return 0;
}
后置++的特点:先将值取出进行操作赋值,后自加1
前置++的特点:先自加1,后赋值
想不出来时画图帮助理解。