C全局变量
-
static修饰的静态变量初始化为0
-
全局变量初始化为0
-
函数中的变量不初始化随机
auto static
- 数组未初始化不能全体赋值
指针数组与数组指针
int b[2][3]={1,2,3,4,5,6};
int (*p)[3]=b;
printf("%d,\n",*(p[0]+1));
2,
函数
传参数方式
- 值传递 行参不影响实参
- 地址传递 行参形象实参
结构体
#include<stdio.h>
#include<string.h>
//char *strcpy( char *dest, const char *src);
struct student{
int id;
char name[28];
float score;
};
int main(int argc, const char *argv[]){
struct student stu1;
stu1.id =1;
stu1.score =99.2;
//stu1.name="yjh" **错误,数组未初始化不能全体赋值**
strcpy(stu1.name, "yjh");
printf("%d,%s,%.2f\n",stu1.id,stu1.name,stu1.score);
return 0;
}
结构体 联合体
- 联合体:union使几个不同类型的变量共占一段内存(相互覆盖)。所占内存长度是各最长的成员占的内存长度。
- 结构体:struct把不同类型的数据组合成一个整体。所占内存长度是各成员占的内存长度的总和。
内部字节对齐
struct sam{
char a;//1 占用两个
short b;//2 占用2个
char c;//1 占用四个
int d;//4 占用四个
}st;//共占用12