C语言篇


类型说明符 数组名[常量表达式];
如定义一个5个元素的数组

int a[5];

数组初始化:

int a[5] = {1,2,3,4,5};

数组初始化和输出

# include <stdio.h>
int main(){
int a[5]={1,2,3,4,5};
int i;
for (i=0;i<5;i++){
printf("%d\n",a[i]);
}
    }


结构体是C语言中的一种复合数据类型。结构体的定义:

struct 结构体标签 {
数据类型 成员1;
数据类型 成员2;
    ·
    ·
    ·    
};

例:

struct Student {  //定义结构体
    int id;
    char name[10];
    float score;
};

int main(){
  struct Student student1;  //声明一个Student类型的变量student1;
return 0;
}

访问结构体成员:

#include <stdio.h>
#include <string.h>

struct Student {
    int id;
    char name[50];
    float score;
};

int main() {
    struct Student student1;

    // 为成员赋值
    student1.id = 1001;
    strcpy(student1.name, "张三"); // 注意:数组不能直接赋值,要用strcpy
    student1.score = 90.5;

    // 读取并打印成员的值
    printf("学号: %d\n", student1.id);
    printf("姓名: %s\n", student1.name);
    printf("成绩: %.1f\n", student1.score);

    return 0;
}

初始化结构体:

struct Student {
    int id;
    char name[50];
    float score;
};

int main() {
    // 按成员定义的顺序初始化
    struct Student student1 = {1001, "张三", 90.5};

    // 指定成员初始化(C99标准支持)
    struct Student student2 = {
        .id = 1002,
        .score = 85.0,
        .name = "李四"
    }; // 顺序可以打乱

    return 0;
}

结构体指针:

#include <stdio.h>
#include <stdlib.h>

struct Student {
    int id;
    char name[50];
    float score;
};

int main() {
    struct Student student1 = {1001, "王五", 88.5};
    struct Student *ptr; // 声明一个指向Student结构体的指针

    ptr = &student1; // 让指针指向student1

    // 通过指针访问成员(使用 -> 运算符)
    printf("学号: %d\n", ptr->id);
    printf("姓名: %s\n", ptr->name);
    printf("成绩: %.1f\n", ptr->score);

    // 等价于 (*ptr).id
    printf("学号: %d\n", (*ptr).id); // 不常用,写法繁琐

    return 0;
}

typedef简化结构体类型名:

// 定义结构体并使用typedef创建别名
typedef struct {
    int id;
    char name[50];
    float score;
} Student; // 现在Student就是一个类型名了

int main() {
    Student student1; // 无需再写struct关键字
    student1.id = 1001;
    // ... 其他操作
    return 0;
}

无标签