参考网址:
嵌入式C语言编程时,变量、数组、指针初始化的多种操作
数值初始化
1 2 3
| int inum = 0; float fnum = 0.00f; double dnum = 0.00;
|
字符初始化
字符串初始化
实际上就是将字符数组中的字符都初始化为'\0'
1 2 3 4 5 6 7 8 9 10 11
| char str[10] = "";
char str[10]; memset(str, 0, sizeof(str));
char str[10]; for(int i = 0; i < 10; i++) { str[i] = '\0'; }
|
一般使用memset
最合适,一般采用+1
的方式参考:
1 2 3
| char year[4+1]; memset(year, 0, sizeof(year)); strcpy(year,"2018");
|
指针初始化
需要使用malloc
申请动态内存
1 2 3 4 5 6 7 8 9 10 11 12
| char *p = NULL; p=(char *)malloc(100); if(NULL == p) { printf("Memory Allocated at: %x\n",p); } else { printf("Not Enough Memory!\n"); } free(p); p = NULL;
|
结构体初始化
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| typedef struct student { int id; char name[20]; char sex; }STU; STU stu1; memset((char *)&stu1, 0, sizeof(stu1));
|
注意初始化结构体数组时
1 2 3 4 5
| STU stus[10]; memset((char *)&stus, 0, sizeof(stus)); memset((char *)&stus, 0, sizeof(STU)); memset((char *)&stus, 0, sizeof(STU)*10); memset((char *)&stu1, 0x00, sizeof(stu1));
|