- 列表内容
指针的简单表述
int *p1 = '\0';
int *p2 = '\0';
int *p = '\0';
int a = 666;
int b = 888;
p1 = &a;
p2 = &b;
if (a < b) {
p = p1;
p1 = p2;
p2 = p;
}
printf("a = %d, b = %d", a, b);
printf("*p1 = %d, *p2 = %d", *p1, *p2);
这其中a和b并没有交换,他们仍是原来的值,但是p1和p2的值改变了。所以指向的目标也就是变了,p1的值原来为&a,后来变成了&b,同理p2。这样在输出*p1和*p2时,实际上输出的是变量b和a的值。
int a = 0;
int b = 0;
int *p1 = '\0';
int *p2 = '\0';
a = 100;
b = 200;
p1 = &a; 把变量a的地址赋值给p1;
p2 = &b; 把变量b的地址赋值给p2;
printf(" a = %d\n b = %d\n", a, b);
printf("p1 = %d\n", *p1);
printf("p2 = %d\n", *p2);
printf("a = %p\n", &a);
printf("b = %p\n", &b);