C语言结构体数组同时赋值的另类用法
说到C语言结构体数组的同时赋值,许多人一想就会想到用以下的这种方法,咱们来写一个例子:
#includestructstudent { inta; intb; intc; }; structstudentarray1[1000]; intmain(void) { inti; for(i=0;i<1000;i++) { array[i].a=1; array[i].b=2; array[i].c=3; } for(i=0;i<1000;i++) { printf("array[%d].a:%darray[%d].b:%darray[%d].c:%d\n", i,array[i].a,i,array[i].b,i,array[i].c); } return0; }
这样就可以实现对结构体数组同时赋值了。
阅读Linux内核源代码的时候看到了,原来C语言还有一种更少人知道的方法,使用"..."的形式,这种形式是指第几个元素到第几个元素,都是一样的内容。这种用法在标准C上也是允许的,没有语法错误,我们来看看它是怎么用的:
#includestructstudent { inta; intb; intc; }; //对第0个数组到第999个结构体数组同时赋值一样的内容 structstudentarray[1000]={ [0...999]={ .a=1, .b=2, .c=3, } }; intmain(void) { inti; //输出赋值后的数值 for(i=0;i<1000;i++) { printf("array[%d].a:%darray[%d].b:%darray[%d].c:%d\n", i,array[i].a,i,array[i].b,i,array[i].c); } return0; }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。