54黑科技 发表于 2019-11-2 10:52:57

为什么输出不同?

#include <stdio.h>

#define PIN1 char*
typedef char* PIN2;

void main()
{
        PIN1 x,y;
        PIN2 a,b;

        printf("%d%d\n",sizeof(x),sizeof(y));
        printf("%d%d\n",sizeof(a),sizeof(b));
}

bin554385863 发表于 2019-11-2 11:11:21

#include <stdio.h>

#define PIN1 char*
typedef char* PIN2;

void main()
{
      PIN1 x,y;---->扩展:char* x, y;这里*不是与char配对的,它是与char后面第一个变量配对的,也就是说x是个指针,y是个普通变量 。
      PIN2 a,b;----->这里把char和*组合起来起的一个别名,因此a,b都是指针。

      printf("%d%d\n",sizeof(x),sizeof(y));
      printf("%d%d\n",sizeof(a),sizeof(b));
}

ba21 发表于 2019-11-2 11:13:01

PIN1 x,y; == char*x, y;
PIN2 a,b; == char *x, *y;

甲鱼老师的课里说得很清楚。

bin554385863 发表于 2019-11-2 11:23:12

这就是上课不认真的结果{:10_312:}

54黑科技 发表于 2019-11-2 13:26:12

ba21 发表于 2019-11-2 11:13
PIN1 x,y; == char*x, y;
PIN2 a,b; == char *x, *y;



好的,重新看了一遍视频,谢谢您!

54黑科技 发表于 2019-11-2 13:27:12

bin554385863 发表于 2019-11-2 11:23
这就是上课不认真的结果

惭愧惭愧
页: [1]
查看完整版本: 为什么输出不同?