C_study - 第5天

本文介绍了C语言中的基本概念,如局部和全局变量、strlen函数、换行符、数组初始化、宏定义、sizeof运算符等。并通过实例展示了简单的函数(如max函数)、条件判断、循环、switch语句以及结构体的定义、使用和指针操作。
摘要由CSDN通过智能技术生成

日期: 星期日, 2024年3月10日

时间: 下午3:23

基本概念

  • 局部变量和全局变量:当局部变量和全局变量同名时,局部变量会在其作用域内覆盖全局变量。
  • 字符串长度strlen() 函数用于求字符串的长度,不包括终止的空字符\0
  • 换行符\n 用作换行符,使输出结果换到下一行。
  • 数组初始化:在C99标准中支持使用变量来指定数组的大小,但此时数组不能初始化。
  • 宏定义:一般不把变量名全部大写,因为全大写通常用于宏定义。#define不是关键字,而是预处理指令。
  • sizeof运算符sizeof用于计算类型或变量的大小(以字节为单位),不是关键字,是一个运算符。
  • 指针大小:指针类型的大小通常是4个字节(32位系统)或8个字节(64位系统)。
  • static修饰符static修饰的变量存储在静态存储区,其生命周期贯穿程序执行期,但可以修改。

简单的最大值函数示例

#include <stdio.h>
int Max(int x,int y){
    return x > y ? x : y;
}
int main(){
    int a, b;
    scanf("%d%d", &a, &b);
    int m = Max(a,b);
    printf("m = %d\n", m);
    return 0;
}

判断成年示例

#include <stdio.h>
int main(){
    int age = 10;
    if(age >= 18){
        printf("成年\n");
    } else {
        printf("未成年\n");
    }
    return 0;
}

使用for循环打印奇数示例

#include <stdio.h>
int main(){
    for(int i = 1; i <= 100; i += 2){
        printf("i = %d\n", i);
    }
}

switch语句示例

#include <stdio.h>
int main(){
    int day;
    scanf("%d", &day);
    switch(day){
        case 1: printf("星期一\n"); break;
        case 2: printf("星期二\n"); break;
        case 3: printf("星期三\n"); break;
        // 其余case省略
        default: printf("输入错误\n"); break;
    }
    return 0;
}

密码确认示例

#include <stdio.h>
int main(){
    char password[30] = {0};
    printf("请输入密码: ");
    scanf(" %s", password);
    printf("请确认密码(Y/N): ");
    int ch = getchar();
    while(1) {
        if (ch == 'Y') {
            printf("密码正确\n");
            break;
        } else {
            printf("密码错误\n");
            // 密码错误时应该如何处理未说明
        }
    }
    return 0;
}

结构体的定义和使用

结构体是C语言中一种复合数据类型,允许将多个不同的数据类型组合成一个单一的类型。这在编程中非常有用,尤其是当需要处理多个相关数据时,比如处理书籍或学生信息。

结构体定义

在这个示例中,定义了两个结构体:stubook

struct stu {
    char name[20];
    int age;
    double score;
};

struct book {
    char name[20];
    int price;
    char id[30];
};
  • struct stu 存储了学生的姓名、年龄和分数。
  • struct book 存储了书籍的名称、价格和ID。
结构体的创建和初始化

结构体可以像普通变量一样被创建和初始化

struct stu s1 = {"张三", 20, 99.9};
struct book b1 = {"C语言", 30, "123456"};
  • s1struct stu类型的变量,初始化时填充了姓名、年龄和分数字段。
  • b1struct book类型的变量,初始化时填充了书名、价格和ID字段。
访问结构体成员

可以使用.操作符来访问结构体的成员。

printf("%s的分数是:%lf\n", s1.name, s1.score);
结构体指针

结构体的指针允许直接访问结构体的成员,而不需要复制整个结构体。使用->操作符可以访问指针指向的结构体的成员。

struct stu* ps = &s1;
printf("%s\n", ps->name);
  • ps是一个指向struct stu类型的指针,它指向s1
  • 使用ps->name来访问s1name成员。
// 结构体示例
#include <stdio.h>

struct stu {
    char name[20];
    int age;
    double score;
};

struct book {
    char name[20];
    int price;
    char id[30];
};

int main() {
    struct stu s1 = {"张三", 20, 99.9}; // 结构体的创建和初始化
    struct book b1 = {"C语言", 30, "123456"}; // 初始化书籍信息

    // 使用指针访问结构体成员
    struct stu* ps = &s1;
    printf("%s的年龄是:%d,分数是:%lf\n", ps->name, ps->age, ps->score);

    return 0;
}

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小毓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值