• 【无标题】c第三弹已发射



    前言

    想要从零基础系统学习C语言的小伙伴一定不要错过,点个关注和小赞,希望给到大家很大的帮助哦!原创不易,禁止抄袭!希望大家多多理解哦!


    一、数据类型

    数据类型分为内置数据类型和外置数据类型。内置数据类型为C语言本身所具备的;而外置数据类型是C语言本身所没有的,需要我们去定义。

    1.内置数据类型

    char
    short
    int
    long
    long long
    float
    double
    C语言内置的数据类型所占的内存如下:
    在这里插入图片描述

    2.自定义数据类型

    struct(结构体)
    enum(枚举) 联合

    二、变量

    1.什么叫做变量?

    生活中可以变得量或元素,不是一成不变的量。

    2.变量的创建和初始化

    在这里插入图片描述

    在对变量进行初始化的时候,若arr未进行初始化,但必须得给空间,例如main函数的第一行。arr2进行了初始化,在数组中进行了3个元素的存储。
    不能出现以下情况,不然就会报错:
    在这里插入图片描述
    语法错误,编译器会报错。

    在这里插入图片描述

    这样输出结果是一个随机值,因为没有\0,所以说计算不出这三个字符后边到底放了多少个元素
    如果arr初始化3–arr[3], 输出的结果和没初始化3的结果相同。

    若在arr加上引号(如下图所示),则就是输出arr这个字符串的长度了,加上引号就表示是一个字符串,并不是一个变量了。
    在这里插入图片描述

    不完全初始化

    这种不完全初始化,不管值为多少,则输出的都是后边初始化的字符的长度
    在这里插入图片描述
    strlen是求字符串的长度的,结果输出为3,就可以证明这种不完全初始化。

    常量表达式

    在这里插入图片描述
    代码出现报警问题是因为数组arr只能是常量表达式,定义的时候不能用变量名定义。
    在C语言中规定,c99标准之前,数组的大小都是用常量表达式或者常量来指定。

    代码如下(示例):

    int main()
    {
    	int arr2[10]={0};  //ok
    	int arr3[4+6]={1,2,3,4}   //ok
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    C99标准之后,支持了变长数组,这个时候允许数组的大小是变量,但是这种指定方式的数组是不能初始化的。

    int main()
    {
    	int m=100;
    	int arr4[m];
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    用一个字符串来初始化一个字符数组
    在这里插入图片描述

    3.补

    每天就要学会总结一个比较重要的代码,并义无反顾的把它记住,每天几步一点点哦!!!

    int Max(int x,int y)
    {
    	if (x>y)
    		return x;
    	else
    	{
    		return y;
    	}
    }
    //较大值传给Max函数 所以前面要先定义Max函数
    int main()
    {
    	int a=0;
    	int b=0;
    	scanf("%d %d", &a,&b);
    	//求两个数的较大值
    	int r=Max(a,b);
    	printf("%d\n",r);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    总结

    每天对知识点进行复习巩固,做好c语言底层语言的基础,还不快快点个关注,下次更新不迷路哦!
    原创不易,望各位大佬支持一下!
    点赞,你的认可是我创作的动力!
    收藏,你的青睐是我努力的方向!
    评论,你的意见是我进步的财富!

  • 相关阅读:
    SpringBoot项目把Mysql从5.7升级到8.0
    Java集合之Set集合
    C语言结构体的存储空间分配
    如何搭建职业教育智慧课堂?
    《最新出炉》系列初窥篇-Python+Playwright自动化测试-13-playwright操作iframe-下篇
    Redis的主从复制
    如何使用PS做出大小水泡组合文字效果呢
    Windows 事件转发到 SQL 数据库
    FPGA基本资源介绍
    【InfoQ】博睿数据CTO孟曦东访谈实录:可观测性技术是未来发展方向
  • 原文地址:https://blog.csdn.net/m0_65434576/article/details/127741421