回 帖 发 新 帖 刷新版面

主题:求救:关于typedef的问题

我刚学c++不久,可是遇到了这个问题:我想将c++学好,而且这里高手多,于是我就马上注册了。
  问题是这样的:
问题1
#include<iostream.h>
void main()
{typedef char * string;
typedef string  months[3];
months spring={"February","March","April"};
} 是对的。
当我将 ={"February","March","April"};改为={'e','t','t'};就是随便写3个字符为什么不行呢?
问题2
这里面的months 到底是什么成分,有什么作用?
多谢各位了!

回复列表 (共2个回复)

沙发

"..."的类型是char*,其结尾有空字符'\0';

'x'的类型是char,是一个整型变量,与上面的类型不符。

typedef char * string;
这句为char*起个别名string。

typedef string months[3];
这句又为string再起个别名months[3]。

months什么都不是,months[3]就是最初的char*。

板凳

多谢,真的谢谢你,,刚才根据你的意思我试了一下其它方法,真的可以
我改成这样了:
#include<iostream.h>
void main()
{typedef int *  months[3];
int *h,*y,*u;
months spring={h,y,u};
}
好像 months 类型的数组,里面的元素一定是指针行的
 而“gdgdf”可以直接表示该数组的地址,也就是指针,,所以可以,,,
谢谢楼上的大哥,,我想你敬礼。

我来回复

您尚未登录,请登录后再回复。点此登录或注册