13_pointers.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * 示例13:指针(Pointers)
  3. * 功能:学习指针的基本概念和使用方法
  4. * 指针是 C 语言的核心特性,用于存储变量的内存地址
  5. */
  6. #include <stdio.h>
  7. int main() {
  8. // 声明一个普通变量
  9. int number = 100;
  10. // 声明一个指针变量,用于存储 int 类型变量的地址
  11. // * 表示这是一个指针,int* 表示指向 int 类型的指针
  12. int *ptr;
  13. // & 是取地址运算符,获取 number 的内存地址
  14. ptr = &number;
  15. // 输出变量的值和地址
  16. printf("number 的值:%d\n", number);
  17. printf("number 的地址:%p\n", &number);
  18. printf("ptr 存储的地址:%p\n", ptr);
  19. // * 是解引用运算符,通过指针访问它指向的变量的值
  20. printf("通过指针访问 number 的值:%d\n", *ptr);
  21. // 通过指针修改变量的值
  22. *ptr = 200; // 等价于 number = 200
  23. printf("修改后 number 的值:%d\n", number);
  24. // 指针的常见用途:在函数中修改外部变量
  25. printf("\n=== 通过指针交换两个数 ===\n");
  26. int a = 5, b = 10;
  27. printf("交换前:a = %d, b = %d\n", a, b);
  28. // 使用指针交换
  29. int temp;
  30. int *pa = &a; // pa 指向 a
  31. int *pb = &b; // pb 指向 b
  32. temp = *pa; // temp = a 的值
  33. *pa = *pb; // a = b 的值
  34. *pb = temp; // b = temp
  35. printf("交换后:a = %d, b = %d\n", a, b);
  36. return 0;
  37. }