注册 登录
编程论坛 C++教室

感觉超简单但就是有错--郁闷--想痛哭

洪溪 发布于 2010-11-18 22:20, 593 次点击
#include<iostream>
using namespace std;

struct Customer
{
    char lastName[15];
    char firtName[15];
    int customerNumber;

    struct  
    {
        char phoneNumber[11];
        char address[50];
        char city[15];
        char state[30];
        char zipCode[7];
    } personal;

} customerRecord={"lu","hengfa"},*customerPtr;
 customerPtr=&customerRecord;

 void main()
 {
     cout<<customerRecord.lastName<<customerPtr->lastName
         <<customerRecord.firtName<<endl;
}
9 回复
#2
zhoufeng19882010-11-19 09:57
程序代码:
#include<iostream>

using namespace std;

struct Customer
{
    char lastName[15];
    char firtName[15];
    int customerNumber;

    struct
    {
        char phoneNumber[11];
        char address[50];
        char city[15];
        char state[30];
        char zipCode[7];
    } personal;

};

Customer customerRecord = {"lu","hengfa"};
Customer * customerPtr = &customerRecord;

void main()
{
     cout << customerRecord.lastName << customerPtr->lastName
          << customerRecord.firtName << endl;
}
#3
洪溪2010-11-19 12:36
那为什么那种方式不行呢?? 感觉方法没有错啊??怪了!!!谢谢你啊大侠
#4
kittel2010-11-19 12:52
回复 3楼 洪溪
任何变量的定义都要声明是什么类型,你都没声明肯定不行。
#5
zhoufeng19882010-11-19 13:02
你用的是C风格的结构。
那就看看typedef的使用。看完你肯定明白了。嘿嘿
#6
洪溪2010-11-21 20:40
回复 4楼 kittel
原来还分C 和 C++ 风格的啊  谢谢你大老
#7
玩出来的代码2010-11-21 21:13
再多说几句。
struct test
{
    int i;
}var;此时var是一个struct test 变量,可以正常使用

typedef struct test
{
     int i;
}var;此时var是一个类型别名。不能当变量使用。
其实楼主那样定义是对的,问题处在全局变量的初始化上,全局变量需在定义时初始化,或不初始化在函数中赋值,但是不能在全局范围内先定义在赋值。呃,大概是这样的了。你可以这样试试。Customer *customerPtr=&customerRecord;
#8
sdreams2010-11-22 00:20
新手报道。凑个热闹。。。
#9
cxjsxy2010-11-22 12:28
学习学习。。
#10
只手驾破船2010-11-22 22:41
明白了一点点
1