char s[10]="welcome";
例如,&s
属于char(*)[2]
类型。
无论如何在C中找到这样的变量类型?
答案 0 :(得分:1)
大多数*编译器都支持typeof
运算符,这非常方便。它基本上等同于C ++的decltype
,所以你可能需要一个宏来把它变成有用的东西,比如字符串:
#define _STRINGIFY(arg) #arg
#define STRINGIFY(arg) _STRINGIFY(arg)
*:大多数编译器都是clang,GCC,我相信MSVC。
答案 1 :(得分:0)
编译器知道但编译完成后会丢弃该信息。你不能以某种方式在运行时询问它是什么类型的变量的文本描述。没有方法会返回字符串“char(*)[2]”
要做到这一点,您必须要么与C编译器集成,要么编写C编译器并在运行时通过它运行代码。