c++语句不懂

来源:百度知道 编辑:UC知道 时间:2024/09/21 00:35:41
class COURSE //课程类
{
private:
static int coursenum;
static char (*coursename)[20]; //这句的意思不太懂,是静态指针吗
public:
static void LoadCourse() //从文件COURSE.DAT装入课程信息
{
ifstream f("course.dat");
f>>coursenum;
coursename=new char[coursenum][20];//这句也不懂
for(int i=0; i<coursenum; i++)
f>>coursename;
f.close();
}
};
int COURSE::coursenum=0;
char (*COURSE::coursename)[20]=0;//指针也可赋值吗?
这段程序有什么问题,功能是什么?
for(int i=0; i<coursenum; i++)
f>>coursename;
这边有问题啊?f>>coursename; 又是什么意思?

static char (*coursename)[20]; //这句的意思不太懂,是静态指针吗
给你分析下
(*coursename)* 号和 coursename 结合 明显这是一个指针
但是后面有[20]这是一个数组
总的来说是定义了一个指针数组 其中每个指针都指向 char 数据

coursename=new char[coursenum][20];//这句也不懂

new 是开拓 新的内存空间
char[][] 这是开辟 一个二维数组
这个表达式的作用是 把二维数组的首地址给 指针数组的首个

char (*COURSE::coursename)[20]=0;//指针也可赋值吗?
0=NULL 把一个指针的值 变成0的话 系统负责他不指向任何储存空间