C语言结构体数组同时赋值的另类用法
2017-08-21 22:43
239 查看
说到C语言结构体数组的同时赋值,许多人一想就会想到用以下的这种方法,咱们来写一个例子:
#include <stdio.h>
struct student
{
int a;
int b ;
int c ;
};
struct student array1[1000] ;
int main(void)
{
int i ;
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:%d array[%d].b:%d array[%d].c:%d \n" ,
i, array[i].a ,i, array[i].b ,i, array[i].c);
}
return 0 ;
}运行结果:这样就可以实现对结构体数组同时赋值了。
阅读Linux内核源代码的时候看到了,原来C语言还有一种更少人知道的方法,使用 "..." 的形式,这种形式是指第几个元素到第几个元素,都是一样的内容。这种用法在标准C上也是允许的,没有语法错误,我们来看看它是怎么用的:
#include <stdio.h>
struct student
{
int a;
int b ;
int c ;
};
//对第0个数组到第999个结构体数组同时赋值一样的内容
struct student array[1000] = {
[0 ... 999] = {
.a = 1 ,
.b = 2 ,
.c = 3 ,
}
};
int main(void)
{
int i ;
//输出赋值后的数值
for(i = 0 ; i < 1000 ; i++)
{
printf("array[%d].a:%d array[%d].b:%d array[%d].c:%d \n" ,
i, array[i].a ,i, array[i].b ,i, array[i].c);
}
return 0 ;
}
运行结果:
#include <stdio.h>
struct student
{
int a;
int b ;
int c ;
};
struct student array1[1000] ;
int main(void)
{
int i ;
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:%d array[%d].b:%d array[%d].c:%d \n" ,
i, array[i].a ,i, array[i].b ,i, array[i].c);
}
return 0 ;
}运行结果:这样就可以实现对结构体数组同时赋值了。
阅读Linux内核源代码的时候看到了,原来C语言还有一种更少人知道的方法,使用 "..." 的形式,这种形式是指第几个元素到第几个元素,都是一样的内容。这种用法在标准C上也是允许的,没有语法错误,我们来看看它是怎么用的:
#include <stdio.h>
struct student
{
int a;
int b ;
int c ;
};
//对第0个数组到第999个结构体数组同时赋值一样的内容
struct student array[1000] = {
[0 ... 999] = {
.a = 1 ,
.b = 2 ,
.c = 3 ,
}
};
int main(void)
{
int i ;
//输出赋值后的数值
for(i = 0 ; i < 1000 ; i++)
{
printf("array[%d].a:%d array[%d].b:%d array[%d].c:%d \n" ,
i, array[i].a ,i, array[i].b ,i, array[i].c);
}
return 0 ;
}
运行结果:
相关文章推荐
- C语言结构体对齐存储问题以及给结构体中的数组的赋值问题
- JavaScript数组对象赋值用法实例
- PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
- JavaScript数组对象赋值用法实例
- C语言结构体数组赋值问题
- java中将一个字符数组赋值给另一个,两者同时变化
- Codeblocks中同时给整形数和字符型数组赋值,出现了一个诡异的情况
- 字符串转成字符数组,同时控制输出字符数——ToCharArray、Response.Write新用法(2006-04-20 15:32)
- 字符数组赋值,以及memset用法注意
- 详解C++编程中数组的基本用法
- 数组指针的用法
- java 数组容器List用法举例
- 同时寻找一个数组中的最大元素和最小元素--你会有所收获
- JS中数组Array的用法
- JS中数组Array的用法
- fill 与memset 给整个数组赋值
- python多维数组初始化后赋值的问题
- Parent属性的另类用法
- 字符数组与指针的用法
- iOS-谓词的小用法(数据分成按key值的元素(数组)组成的数组)