|
|
C/C++中的多层嵌套结构 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
#include <iostream> using namespace std; #define CHINA 100 #define KINDY_LOVE_NET2K 200 struct cool { int x ; int y ; } ; struct kk { int ucdos,cmd ; } ; struct pop { cool tx ; cool ty ; kk tuc ; kk twy ; int a,b ; } boy ; int main() { cout<<"请依次输入4个整数:"; cin>>boy.tuc.ucdos>>boy.tuc.cmd>>boy.twy.ucdos>>boy.twy.cmd; cout<<"boy.tuc.ucdos="<<boy.tuc.ucdos<<endl; cout<<"boy.tuc.cmd="<<boy.tuc.cmd<<endl; cout<<"boy.twy.ucdos="<<boy.twy.ucdos<<endl; cout<<"boy.twy.cmd="<<boy.twy.cmd<<endl; //////////////////////////////////////////////////// boy.tx.x=CHINA ; boy.tx.y=KINDY_LOVE_NET2K ; boy.ty.x=boy.tuc.ucdos; boy.ty.y=boy.twy.ucdos; cout<<"boy.tx.x="<<boy.tx.x<<endl; cout<<"boy.tx.y="<<boy.tx.y<<endl; cout<<"boy.ty.x="<<boy.ty.x<<endl; cout<<"boy.ty.y="<<boy.ty.y<<endl; /////////////////////////////////////////////////// boy.a=boy.tx.x+boy.tx.y ; boy.b=(boy.tx.x+boy.tx.y)-(boy.ty.x/boy.ty.y); cout<<"boy.a="<<boy.a<<endl; cout<<"boy.b="<<boy.b<<endl; ////////////////////////////////////////////////////
}
由于不细心把代码写错,这里还发现有个问题,就是这段代码改成用C写的时候,在结构体“kk”内加入代码: struct cool wx ; struct cool wy ; 然后在结尾加入: boy.tx.wx.x=CHINA ; printf("boy.tx.wx.x=%d\n",boy.tx.wx.x); boy.tx.wx.y=boy.twy.cmd; printf("boy.tx.wx.y=%d\n",boy.tx.wx.y); boy.tx.wy.x=KINDY_LOVE_NET2K; printf("boy.tx.wy.x=%d\n",boy.tx.wy.x); boy.tx.wy.y=boy.a; printf("boy.tx.wy.y=%d\n",boy.tx.wy.y); 在TC中编译时是可以通过的,不过程序出现如下提示: 警告 temp.c 45: 'wx'非构造部分 在函数 警告 temp.c 46: 'wx'非构造部分 在函数 警告 temp.c 47: 'wx'非构造部分 在函数 警告 temp.c 48: 'wx'非构造部分 在函数 警告 temp.c 49: 'wy'非构造部分 在函数 我很是纳闷,为什么非结构体还可以编译通过呢?程序运行时没感觉到任何异样,以下是运行得到的数据,和预期中的效果毫无差别: boy.tx.wx.x=100 boy.tx.wx.y=90 boy.tx.wy.x=200 boy.tx.wy.y=300 如果移植不成问题的话,我认为这样写也没问题,但是我决不建议这样写,错误的就是错误的,我们要养成一个良好的编程习惯,特别对于初学者来说,这点 是尤其重要的。

|
|
相关文章:相关软件: |
|