初识数据类型

数据类型

image-20220607105116530

#include<stdio.h>
#include<stdlib.h>
int main()
{
    char ch = 'a';     //创建一个字符类型的空间
    int age = 20;      //整形
    short num = 10;    //短整型,int可以省略
    //long
    //long long
    float weight = 55.5;//单精度浮点型
    double d = 0.0 ;    //双精度浮点型
    system("pause");
    return 0;
}

类型的大小

int main()
{
    printf("char的大小为%d\n",sizeof(char)); //sizeof()计算变量大小,单位字节
    printf("short的大小为%d\n",sizeof(short));
    printf("int的大小为%d\n",sizeof(int));
    printf("long的大小为%d\n",sizeof(long));
    printf("long long的大小为%d\n",sizeof(long long));
    printf("float的大小为%d\n",sizeof(float));
    printf("double的大小为%d\n",sizeof(double));
    return 0;
    //在tasks.json文件中的"args":中加入"-fexec-charset=GBK"就能解决中文输出的乱码问题
}

计算机中的单位:

bit —>位,二进制里的一个1或0;

byte—>字节,一个字节等于8个bit

kb—>1024byte

mb—>1024kb

image-20220607132240881

  • 为什么c语言有这么多类型?

    节省存储空间

  • 每种类型的大小是多少?

变量常量

有一些数据是不能变的:血型,性别,但有一些是一定可变的:工资,年龄。

C语言中这样描述:常量和变量。

定义变量的方法

类型 变量的名字 = 0;

类型 变量的名字

int age = 18;
double weight = 68;
age++;
weight = weight-10;
printf("%d",age);
printf("%lf",weight);
//%d---int
//%f---float
//%lf---double

变量的分类

括号外的就是全局变量

括号内的就是局部变量

int a = 100;//全局变量
int main()
{
    int a = 10;//局部变量
    printf("%d",a);//全局变量和局部变量名字一样,局部优先
    //不建议全局变量和局部变量名字一样
    return 0;
}

变量的使用

#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    int sum = 0;
    scanf("%d %d",&a,&b);
    sum = a+b;
    printf("sum = %d\n",sum);
    return 0;
}

变量的作用域和声明周期

作用域

变量在哪里可以使用,哪里就是作用域

局部变量的作用域:就是变量所在的局部范围

全局变量的作用域:整个工程(extern声明一下变量,就可以跨.c文件使用)

#include<stdio.h>
int b = 10;
int main()
{
    printf("1:%d",b)
    {
        printf("2:%d",b)
        int a = 10;//a的作用域就是代码块的内部
    }
   	//printf("%d",a)//不能打印
    return 0;
}
#include<stdio.h>
extern int b;//vscode 只能对单文件运行,用不了全局变量
int main()
{
    printf("1:%d",b)
    return 0;
}
生命周期

变量的创建到销毁之间的时间段

局部变量:进入所在局部范围,生命开始,出局部范围,生命结束。

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

常量

  • 字面常量:

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

    const int mun = 10;
    num = 20; //报错,const修饰后不能更改,num还是变量,具有常属性不能修改
    printf("%d",num);
    int arr[10] = {0};
    const int n = 10;
    int arr2[n] = {0};//报错,因为const修饰后还是变量
    
  • define定义的标识符常量:

    #define MAX 10000
    
    int n = MAX;
    printf("%d",n);
    
  • 枚举常量:

    可以一一列举的常量:性别

    enum Sex
    {
        MALE = 3, //枚举类型未来可能出现的取值,=3为赋初值,下面依次递增
        FEMALE,
        SECREC
    };
    int main()
    {
        enum Sex s = MALE;
        return 0;
    }
    

    image-20220608193729355

字符串

字符串就是一串字符,用双引号括起来的一串字符

注:字符串以“\0”结尾。

#include<string.h>
int main()
{
    "abcd";
    char arr[] = "hellow";
    char arr1[] = "abc";
    char arr2[] = {'a','b','c'};
    char arr3[] = {'a','b','c','\0'};
    printf("%s\n",arr1);//"abc\0"
    printf("%s\n",arr2);//没有结束字符\0,会接着输出乱码
    printf("%s\n",arr3);//有'\0',不会出现乱码
    
    //求字符串长度
    int len = strlen("abc");//计算字符串长度不算'\0',注意引用头文件<string.h>
    printf("%d",len);
    printf("%s\n",strlen(arr2));// 随机值
    printf("%s\n",strlen(arr3));
    return 0;
}

printf(“%s\n”,arr3);//有’\0’,不会出现乱码

//求字符串长度
int len = strlen("abc");//计算字符串长度不算'\0',注意引用头文件<string.h>
printf("%d",len);
printf("%s\n",strlen(arr2));// 随机值
printf("%s\n",strlen(arr3));
return 0;

}


![image-20220608201056780](https://img-blog.csdnimg.cn/img_convert/cbd463f290071aa617eadf40579eef10.png)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值