A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1黑马币
完整代码:
#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]);

最佳答案

查看完整内容

把数组看成一个一维数组,相当于输出一个一维数组,printf ("%d\t %s\t %d\n",lists)怎么不可以啊

7 个回复

倒序浏览
把数组看成一个一维数组,相当于输出一个一维数组,printf ("%d\t %s\t %d\n",lists[i])怎么不可以啊
回复 使用道具 举报
恩,是的,结构体数组可以看成是其他类型的数组,只不过是用户自己定义的类型而已,这个数组本身就是结构体一维数组,感谢回答,即使知道它是用户定义类型的一维数组,你不觉得这种输出方式很特别很巧妙么
回复 使用道具 举报
0.0涨姿势了呀真是
回复 使用道具 举报
有人在GCC中运行,没有成功遍历,这可能不是我们想象的那么简单,本人是用VC6.0运行的,我想应该牵涉到vc中补码等底层的因数!!!
回复 使用道具 举报
好,赞个
回复 使用道具 举报
好,学习了
回复 使用道具 举报
涨姿势了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马