c语⾔数组赋值⼀、数组定义原则:
长度是常量,赋值⽤⼤括号括起来。
例:
int data[5] = {5, 2, 4, 0, 3};
如果⽤变量:
int n=5;
int a[n] = { 1,2,3,4,5 };
gcc报错:
error: variable-sized object may not be initialized
先追加⼀个经典的例⼦:
#include <stdio.h>
#include <stdlib.h>
void func()
{
int i = 0;
int a[5]={
[0] = 5,
怎么给数组赋值[1] = 6,
[4] = 10,
};
for(i=0; i<5;i++){
printf("a[%d]:= %d \n", i, a[i]);
}
}
int main(int argc, char *argv[])
{
func();
return 0;
}
~
和枚举相似的赋值逻辑, 数组赋值是可以跳跃的.
⼆、结构体数组:
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int a;
int array[2];
}ARRAY_STRU;
typedef enum index{
E0,
E1,
E2,
}ENUM_INDEX;
void test(){
int n=5;
//int a[n] = { 1,2,3,4,5 };
int a[5]= {5, 2, 4,};
for(int i=0; i< 5; i++){
printf("a[%d]:= %d", i, a[i]);
}
printf("\n");
return;
}
void senior_test(){
int i=0;
ARRAY_STRU mygroup[3]={
[E0]={1,{1,2}},
[E2]={1,{1,2}},
};
for(int i=0;i<3; i++){
if(mygroup[i].a){
printf("the %dth data is not null\n", i);
printf("mygroup[%d].a:=%d \n", i,mygroup[i].a);
printf("mygroup[%d].array:= %d %d \n", i,mygroup[i].array[0], mygroup[i].array[1]); }
}
}
int main(int argc, char* argv[])
{
test();
senior_test();
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论