我爱橙 发表于 2022-3-10 16:50:10

NO.244 指针计算

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

Q:变量p为指针变量,若p=&a,下列说法不正确的是
A.&*p==&a
B.*&a==a
C.(*p)++==a++
D.*(p++)==a++

yzzc 发表于 2022-3-10 17:51:12

D
*(p++)表示p往p指向的地址往后移一位再取地址里面的值
a++表示,a的值自增1

我爱橙 发表于 2022-3-11 16:09:33

本帖最后由 我爱橙 于 2022-3-11 16:25 编辑

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

int main()
{
       int a,*p;
           p=&a;
       &*p==&a;
          
         printf("a=%d\n", a);// a=0
      
      printf("&a=%d\n", &a);// &a=6487572
         


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

      
           printf("*p=%d\n", *p);    //*p=0
      
       printf("&*p=%d\n", &*p);    //&*p=6487572

      return 0;
}

我爱橙 发表于 2022-3-11 16:10:56

本帖最后由 我爱橙 于 2022-3-11 16:30 编辑

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

int main()
{
       int a,*p;
         p=&a;
      *&a==a;

      printf("a=%d\n", a);// a=0
      
       printf("&a=%d\n", &a);// &a=6487572
      
       printf("*&a=%d\n", a);//*&a=0
      
       printf("p=%d\n", p);      //p=6487572

      
         printf("*p=%d\n", *p);    //*p=0
      
   

      return 0;
}

我爱橙 发表于 2022-3-11 16:12:32

本帖最后由 我爱橙 于 2022-3-11 16:45 编辑

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

int main()
{
       int a,*p;
         p=&a;
            printf("a=%d\n", a);// a=0
         
         printf("&a=%d\n", &a);// &a=6487572
      
         printf("p=%d\n", p);   // p=6487576
      
         printf("*p=%d\n", *p); // *p=0
         
          (*p)++==a++;
         
         printf("p=%d\n", p);    //p=6487572
      
         printf("*p=%d\n", *p); //*p=2
         
            printf("(*p)++=%d\n", (*p)++); // (*p)++=2
         
         printf("a=%d\n", a);//a=3
         
         printf("a++=%d\n", a++);// a++=3
      
         printf("&a=%d\n", &a);   //&a=6487572
         

      return 0;
}


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

int main()
{
       int a,*p;
         p=&a;
            printf("a=%d\n", a);// a=0
         
         printf("&a=%d\n", &a);// &a=6487572
      
         printf("p=%d\n", p);   // p=6487576
      
         printf("*p=%d\n", *p); // *p=0
         
          (*p)++==a++;
         printf("a=%d\n", a);//a=2
         
         printf("a++=%d\n", a++);// a++=2
      
         printf("&a=%d\n", &a);   //&a=6487572
         
         
                   printf("p=%d\n", p);    //p=6487572
      
         printf("*p=%d\n", *p); //*p=3
         
            printf("(*p)++=%d\n", (*p)++); // (*p)++=3
         
         
         

      return 0;
}

我爱橙 发表于 2022-3-11 16:13:27

本帖最后由 我爱橙 于 2022-3-11 16:43 编辑

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

int main()
{
       int a,*p;
           p=&a;
          
           printf("a=%d\n", a);// a=0
          
       printf("&a=%d\n", &a);// &a=6487572
      
           printf("p=%d\n", p);   // p=6487576
      
           printf("*p=%d\n", *p); // *p=0
          
          
      
       *(p++)==a++;
          
           printf("p=%d\n", p);   // p=6487576
      
           printf("*p=%d\n", *p); // *p=6487576
          
           printf("p++=%d\n", p++); // p++=6487576
          
           printf("*(p++)=%d\n", *(p++)); // *(p++)=0
          
           printf("a=%d\n", a);// a=1

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

      return 0;
}

我爱橙 发表于 2022-3-11 16:20:26

本帖最后由 我爱橙 于 2022-3-11 16:22 编辑

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

int main()
{
       int a,*p;
           p=&a;
      
           printf("a=%d\n", a);// a=0
      
       printf("&a=%d\n", &a);// &a=6487572

           printf("p=%d\n", p);   // p=6487576
      
           printf("*p=%d\n", *p); // *p=0
          
          
      return 0;
}
页: [1]
查看完整版本: NO.244 指针计算