#include <stdio.h>
void swap(int* p1, int* p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main(int argc, char** argv)
{
int x, y;
int* pt_x;
int* pt_y;
x = 2, y = 8; // x,y是一个整形变量
pt_x = &x; // pt_x是一个指针变量,值是变量x的地址
pt_y = &y; // pt_y是一个指针变量,值是变量y的地址
int z = 10; // z是整形变量,值为10
int* pt_z = &z; // pt_z是指针变量,值是变量z的地址
int t = *pt_z; // 取指针地址中的值
printf("取值:t = %d\n", t); // 10
int* pt_t; // 定义整形指针变量,未初始化
pt_t = pt_z; // 指针pt_t 等于 指针pt_z
int t2 = *pt_t; // 取值
printf("取值:t2 = %d\n", t2); // 10
printf("交换前:x = %d, y = %d\n", x, y);
int temp = *pt_x; // 取指针变量保存的地址中的值(值为2)
*pt_x = *pt_y; // 指针pt_x的地址(x) 指向 指针pt_y的地址(y) --- x的值改变
*pt_y = temp; // 指针pt_y的地址(y) 指向 整形变量temp(值为2) --- y的值改变
printf("交换后:x = %d, y = %d\n", x, y);
int a = 4, b = 5;
int* pt_a, * pt_b;
pt_a = &a;
pt_b = &b;
printf("交换前:a = %d, b = %d\n", a, b);
swap(pt_a, pt_b);
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
C语言指针理解
最新推荐文章于 2024-09-19 12:25:05 发布