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