初识C语言—数据类型


数据类型

char        //字符数据类型
short       //短整型
int         //整形
long        //长整形
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数
​

计算机语言 -写程序-解决生活中的问题

有能力来描述生活中的问题

购物商城 - 价格 - 13.4元 - 小数

C语言 浮点数,所以我们需要不同的数据类型来存储我们的数据

int main() 
{
    //字符类型
    char ch = 'a';
    //整形
    int age = 20;
    //long
    //long long
    //单精度浮点型
    float  weight = 13.4;
    return 0;
}

每种类型的大小

int main() 
{
    //sizeof - 关键字 - 操作符 - 计算类型或者变量所占空间大小
    printf("%d\n",sizeof(char));
    printf("%d\n",sizeof(short));
    printf("%d\n",sizeof(int));
    printf("%d\n",sizeof(long));
    printf("%d\n",sizeof(long long));
    printf("%d\n",sizeof(double));
    printf("%d\n",sizeof(float));
    return 0;
}

运行结果

1
2
4
4       //为什么长整型没有整型长呢,C语言标准中 sizeof(long)>=sizeof(int),这里是等于的情况
8
8
4

单位是字节 byte

计算机中的单位

bit - 比特位 - 一个1或者0,存放单个计算机二进制位,计算机最小单位

byte - 字节 = 8bit

kb - 1024byte

mb - 1024kb

gb - 1024mb

tb - 1024gb

pb - 1024tb

这样子可以避免空间浪费,按需分配,空间利用率更高


变量和常量

生活中的数据:

有些数据不能变:性别、血型、圆周率

有些数据一定可变:年龄、工资、体重

C语言如何描述

定义变量的方法

//创建变量
//类型 变量名字 = 0 (初始化)
//类型 变量名字 (不推荐)
int age = 20;
double weight = 75.5;
age = age + 1;
weight = weight - 10;
printf("%d\n",age);
printf("%lf\n",weight);
​
%d 整型
%f float
%lf double
变量的分类

局部变量 - 大括号内部定义的变量

int main()
{
    int a = 10;
    return 0;
}

全局变量 - 大括号外部定义的变量

int a = 10;
int main()
{
    return 0;
}

这个程序打印的是多少?

int a = 100;
int main()
{
    int a = 10;
    return 0;
}
当局部变量和全局变量冲突时,局部变量优先

打印结果

10

不建议把全局变量和局部变量名字写成一样的


求两个数的和

int main()
{
    int a = 0;
    int b = 0;
    int sun = 0;
    scanf("%d %d",&a,&b);
    sum = a + b;
    printf("%d\n",sum);
}

简单的例子,也可以说明问题

作用域和生命周期

局部变量的作用域在变量所在的范围(大括号内)

全局变量作用域为全局

在同一工程里不同文件之间使用全局变量需要提前声明

int g_val = 2024;

其他工程的文件需要使用时需要声明

extern int g_val
​
int main()
{
    printf("%d\n",g_val);
    return 0;
}

运行结果

2024

生命周期

从创建到销毁,之间的时间段

局部变量的生命周期:进入局部范围,生命开始,出局部范围,生命结束

全局变量的生命周期:程序的生命周期

int b = 100;
​
int main()
{
    {
        int a = 10;
        printf("%d",a);
    }
    
    return 0;
}

常量

  • 字面常量

    3.14;
    10;
    'a';
    "asdhjkasd"
  • const修饰的常变量

    const int num = 10;//num为常变量,常属性即为不能改变的属性
    ​
    const int n = 10;
    int arr2[n] = {0};//这里还是不能这么写,这里数组需要常量,常变量也会报错
  • #define定义的标识符常量

    #define MAX 10000
    ​
    int n = MAX;
    printf("%d",n);
    ​
    //运行结果为10000

  • 枚举常量

    enum Sex
    {
        //枚举变量未来的可能取值
        MALE,
        FEMALE,
        SECRET
    }
    ​
    int mian()
    {
        enum Sex s = MALE;
        printf("%d\n",MALE);
        printf("%d\n",FEMALE);
        printf("%d\n",SECRET);
        return 0;
    }
    //运行结果
    0
    1
    2
        

    枚举常量是常量,可以赋初值,但是下面不能修改

    enum Sex
    {
        //枚举变量未来的可能取值
        MALE = 3,//赋初值
        FEMALE,
        SECRET
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

J.Pei

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

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

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

打赏作者

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

抵扣说明:

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

余额充值