这是我在写有关C语言题时碰到的有陷阱的题,我们一起来看一下吧!
test.c文件中包括如下语句,哪个变量不是指针变量
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define INT_PTR int*
int main()
{
typedef int* int_ptr;
INT_PTR a, b;
int_ptr c, d;
return 0;
}
我们分析代码,发现#define只进行替换,它后面只定义了一个类型,那么它也就只能替换一个,在预处理后,a变为int* a,b还是b,故b不是指针变量,它是整型变量
而c和d都是进行了类型重定义的,故c和d都是整型变量
希望大家可以理解,我们下期再见!!!