碰到个题,求大佬指点..
题:
设typedef char STRING[255];STRING*s;,则s是( )
A.字符数组
B.字符变量
C.字符指针数组
D.字符指针变量
答案是C,为啥不是D呢?这里的 指针s是怎么指向数组的啊?
碰到个题,求大佬指点..
题:
设typedef char STRING[255];STRING*s;,则s是( )
A.字符数组
B.字符变量
C.字符指针数组
D.字符指针变量
答案是C,为啥不是D呢?这里的 指针s是怎么指向数组的啊?
STRING为有255个char元素的数组,STRING *s则为指向有255个char *元素的数组,其中每个char *都指向char[255]
typedef char STRING[255];STRING *s;
STRING *s 等价 (*s)char *[255];
使用typeinfo打印变量类型
#include <iostream>
#include <typeinfo>
using namespace std;
typedef char STRING[255];
int main()
{
STRING s1 = {0};
STRING *s2;
cout << "s1 type:" << typeid(s1).name() << endl;
cout << "*s2 type:" << typeid(s2).name() << endl;
cout << "s2[0] type:" << typeid(s2[0]).name() << endl;
return 0;
}
output:
[root@typedef]# g++ typedef.cpp
[root@typedef]# ./a.out
s1 type:A255_c
*s2 type:PA255_c
s2[0] type:A255_c
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
答案是,指向 字符数组 的指针变量。
它也不是一个 字符指针的 数组。