黑马程序员技术交流社区

标题: 自己尝试的另一种结构体数组遍历输出的方法,MJ老师没讲... [打印本页]

作者: xiezhongmin    时间: 2014-12-25 23:33
标题: 自己尝试的另一种结构体数组遍历输出的方法,MJ老师没讲...
完整代码:
#include <stdio.h>


int main (void)
{
        struct list
        {
                int ranking;
                char *name;
                int score;
        };

        struct list lists[3]={

                {1,"xie",5000},              
                 {2,"li",4000},
                {3,"xu",3000},

        };
                     

        for (int i=0; i<3; i++)
        {
                printf ("%d\t %s\t %d\n",lists[i]);//这种写法也正确,暂时不知道原因
                //printf ("%d\t %s\t %d\n",lists[i].ranking,lists[i].name,lists[i].score);


        }
        return 0;
}
为什么这种方法也可以,而且非常的精简好用:printf ("%d\t %s\t %d\n",lists[i]);

作者: zhaojiajun    时间: 2014-12-25 23:33
把数组看成一个一维数组,相当于输出一个一维数组,printf ("%d\t %s\t %d\n",lists[i])怎么不可以啊
作者: xiezhongmin    时间: 2014-12-26 01:15
恩,是的,结构体数组可以看成是其他类型的数组,只不过是用户自己定义的类型而已,这个数组本身就是结构体一维数组,感谢回答,即使知道它是用户定义类型的一维数组,你不觉得这种输出方式很特别很巧妙么
作者: Ogre    时间: 2014-12-27 00:22
0.0涨姿势了呀真是
作者: xiezhongmin    时间: 2014-12-27 00:31
有人在GCC中运行,没有成功遍历,这可能不是我们想象的那么简单,本人是用VC6.0运行的,我想应该牵涉到vc中补码等底层的因数!!!
作者: pj1988    时间: 2014-12-29 22:22
好,赞个
作者: 王德亮    时间: 2015-1-2 12:17
好,学习了
作者: VitaminesPop    时间: 2015-3-4 10:54
涨姿势了。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2