鱼C论坛

 找回密码
 立即注册
查看: 2310|回复: 0

[作品展示] S1E27:常量和指针

[复制链接]
发表于 2023-11-2 11:59:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 BaysideLizard 于 2023-11-14 22:15 编辑
  1. #include <stdio.h>
  2. //DNX写于2023年11月1日

  3. int main()
  4. {
  5.     printf("指向常变量的指针测试\n");
  6.     int num = 123;
  7.     const int cnum = 789;//常变量
  8.     const int *pc = &cnum;

  9.     //cnum = 111;这是不可以的
  10.     printf("cnum:%d,&cnum:%p\n",cnum,&cnum);
  11.     printf("*pc:%d,pc:%p\n",*pc,pc);

  12.     pc = &num;

  13.     printf("cnum:%d,&cnum:%p\n",cnum,&cnum);
  14.     printf("*pc:%d,pc:%p\n",*pc,pc);
  15.     //*pc = 123;这有也是不可以的
  16.     putchar('\n');
  17. /*总结:
  18. --指针可以修改为指向不同的常量;
  19. --指针可以修改为指向不同的变量;
  20. --可以通过解引用来读取不同的变量;
  21. --不可以通过解引用修改指针指向的数据;
  22. */

  23.     printf("指向非常量的常量指针测试\n");
  24.     int numm = 321;
  25.     const int cnumm = 987;
  26.     int * const p = &cnumm;

  27.     printf("*p:%d\n",*p);
  28.     *p = 111;
  29.     printf("*p:%d\n",*p);
  30.     //p = &numm;这是不可以的
  31.     putchar('\n');
  32. /*总结:
  33. 指向非常量的常量指针:
  34. --指针自身不可以被修改;
  35. --指针指向的值可以被修改;
  36. */

  37.     printf("指向常量的常量指针测试\n");
  38.     int nummm = 321;
  39.     const int cnummm = 987;
  40.     const int * const pp = &cnummm;

  41.     //*pp = 111;这是不可以的
  42.     printf("*pp:%d\n",*pp);
  43.     //pp = &nummm;这也是不可以的
  44.     putchar('\n');
  45. /*总结:
  46. 指向常量的常量指针:
  47. --指针自身不可以被修改;
  48. --指针指向的值也不可以被修改;
  49. */

  50.     printf("指向“指向常量的常量指针”的指针测试\n");
  51.     int nummmm = 321;
  52.     const int cnummmm = 987;
  53.     const int * const ppp = &cnummmm;
  54.     const int * const *cppp = &ppp;

  55.     printf("cppp:%p,&ppp:%p\n",cppp,&ppp);
  56.     printf("*cppp:%p,ppp:%p,&cnummmm:%p\n",*cppp,ppp,&cnummmm);
  57.     printf("**cppp:%d,*ppp:%d,&cnummmm:%d\n",**cppp,*ppp,cnummmm);


  58.     return 0;
  59. }
复制代码








运行结果:
指向常变量的指针测试
cnum:789,&cnum:000000000061FDE0
*pc:789,pc:000000000061FDE0
cnum:789,&cnum:000000000061FDE0
*pc:123,pc:000000000061FDE4

指向非常量的常量指针测试
*p:987
*p:111

指向常量的常量指针测试
*pp:987

指向“指向常量的常量指针”的指针测试
cppp:000000000061FDC8,&ppp:000000000061FDC8
*cppp:000000000061FDD4,ppp:000000000061FDD4,&cnummmm:000000000061FDD4
**cppp:987,*ppp:987,&cnummmm:987

Process returned 0 (0x0)   execution time : 0.045 s
Press any key to continue.








在FishC学C的第十二天
加油!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 07:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表