鱼C论坛

 找回密码
 立即注册
查看: 3044|回复: 6

NO.244 指针计算

[复制链接]
发表于 2022-3-10 16:50:10 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 我爱橙 于 2022-3-10 16:50 编辑

Q:变量p为指针变量,若p=&a,下列说法不正确的是
A.&*p==&a
B.*&a==a
C.(*p)++==a++
D.*(p++)==a++
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-10 17:51:12 | 显示全部楼层
D
*(p++)表示p往p指向的地址往后移一位再取地址里面的值
a++表示,a的值自增1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-3-11 16:09:33 | 显示全部楼层
本帖最后由 我爱橙 于 2022-3-11 16:25 编辑

A
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.        int a,*p;
  6.            p=&a;
  7.        &*p==&a;
  8.             
  9.          printf("a=%d\n", a);  // a=0
  10.       
  11.         printf("&a=%d\n", &a);// &a=6487572
  12.          


  13.            printf("p=%d\n", p);        //p=6487572

  14.       
  15.            printf("*p=%d\n", *p);    //*p=0
  16.       
  17.        printf("&*p=%d\n", &*p);    //&*p=6487572

  18.         return 0;
  19. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-11 16:10:56 | 显示全部楼层
本帖最后由 我爱橙 于 2022-3-11 16:30 编辑

B
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.        int a,*p;
  6.            p=&a;
  7.         *&a==a;

  8.         printf("a=%d\n", a);  // a=0
  9.       
  10.        printf("&a=%d\n", &a);// &a=6487572
  11.       
  12.        printf("*&a=%d\n", a);  //*&a=0
  13.       
  14.        printf("p=%d\n", p);        //p=6487572

  15.       
  16.            printf("*p=%d\n", *p);    //*p=0
  17.       
  18.      

  19.         return 0;
  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-11 16:12:32 | 显示全部楼层
本帖最后由 我爱橙 于 2022-3-11 16:45 编辑

C
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.        int a,*p;
  6.            p=&a;
  7.             printf("a=%d\n", a);  // a=0
  8.            
  9.            printf("&a=%d\n", &a);// &a=6487572
  10.       
  11.            printf("p=%d\n", p);   // p=6487576
  12.       
  13.            printf("*p=%d\n", *p); // *p=0
  14.            
  15.           (*p)++==a++;
  16.            
  17.            printf("p=%d\n", p);    //p=6487572
  18.       
  19.            printf("*p=%d\n", *p); //*p=2
  20.            
  21.             printf("(*p)++=%d\n", (*p)++); // (*p)++=2
  22.            
  23.            printf("a=%d\n", a);  //a=3
  24.            
  25.            printf("a++=%d\n", a++);  // a++=3
  26.       
  27.            printf("&a=%d\n", &a);   //&a=6487572
  28.            

  29.         return 0;
  30. }
复制代码


  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.        int a,*p;
  6.            p=&a;
  7.             printf("a=%d\n", a);  // a=0
  8.            
  9.            printf("&a=%d\n", &a);// &a=6487572
  10.       
  11.            printf("p=%d\n", p);   // p=6487576
  12.       
  13.            printf("*p=%d\n", *p); // *p=0
  14.            
  15.           (*p)++==a++;
  16.            printf("a=%d\n", a);  //a=2
  17.            
  18.            printf("a++=%d\n", a++);  // a++=2
  19.       
  20.            printf("&a=%d\n", &a);   //&a=6487572
  21.          
  22.          
  23.                    printf("p=%d\n", p);    //p=6487572
  24.       
  25.            printf("*p=%d\n", *p); //*p=3
  26.            
  27.             printf("(*p)++=%d\n", (*p)++); // (*p)++=3
  28.            
  29.          
  30.            

  31.         return 0;
  32. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-11 16:13:27 | 显示全部楼层
本帖最后由 我爱橙 于 2022-3-11 16:43 编辑

D
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.        int a,*p;
  6.            p=&a;
  7.           
  8.            printf("a=%d\n", a);  // a=0
  9.           
  10.        printf("&a=%d\n", &a);// &a=6487572
  11.       
  12.            printf("p=%d\n", p);   // p=6487576
  13.       
  14.            printf("*p=%d\n", *p); // *p=0
  15.           
  16.           
  17.       
  18.        *(p++)==a++;
  19.           
  20.            printf("p=%d\n", p);   // p=6487576
  21.       
  22.            printf("*p=%d\n", *p); // *p=6487576
  23.           
  24.            printf("p++=%d\n", p++); // p++=6487576
  25.           
  26.            printf("*(p++)=%d\n", *(p++)); // *(p++)=0
  27.           
  28.            printf("a=%d\n", a);  // a=1

  29.            printf("a++=%d\n", a++);  // a++=1
  30.       
  31.        printf("&a=%d\n", &a);// &a=6487572

  32.         return 0;
  33. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-11 16:20:26 | 显示全部楼层
本帖最后由 我爱橙 于 2022-3-11 16:22 编辑
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.        int a,*p;
  6.            p=&a;
  7.       
  8.            printf("a=%d\n", a);  // a=0
  9.       
  10.        printf("&a=%d\n", &a);// &a=6487572

  11.            printf("p=%d\n", p);   // p=6487576
  12.       
  13.            printf("*p=%d\n", *p); // *p=0
  14.           
  15.           
  16.         return 0;
  17. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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