• 01.初识C语言1


    目录

    一、前期准备

    二、了解C语言的基础知识

    1.什么是C语言?

    2.安装VS2019

    3.前情

    1.创建项目

     2.创建源文件

     3.写代码

    4.数据类型

    5.变量 

    4. 字符串+转义字符+注释​​​​​​​

    5.注释


    一、前期准备

    1.gitee网址(代码托管网站):工作台 - Gitee.com

    Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

    (20条消息) gitee的注册和代码提交_木懿尓的博客-CSDN博客

    用法:

    1)新建仓库

    2)随意勾选

     

    3)网络仓库构建完成

    2.所学知识:计算机语言、算法和数据结构、操作系统、计算机网络、项目实战

    二、了解C语言的基础知识

    1.什么是C语言?

    C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语 言。

    二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。

    2.安装VS2019

    ------------------------------------------集成开发环境(英文缩写:IDE)-----------------------------------

    编辑器

    编译器

    链接器

    调试器

    Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com)

    3.前情

    1.创建项目

    创建后出现此界面即可 

     如果没有出现,视图-解决方案资源管理就可以出现

     

     2.创建源文件

    .h header头文件

    .c 源文件

    我们一般把代码放在.c文件中

    1)添加源文件

     3.写代码

    //解释:
    //main函数是程序的入口
    //一个工程中main函数有且仅有一个
    //一个工程(项目)中可以有多个.c文件,但是多个.c文件中只能有一个main函数
    //include 是包含的意识
    //下面的代码就是包含stdio.h这个头文件
    //stdio - standard input output 标准输入输出头文件

    //int - 整型 - 整数
    //printf - 打印函数,括号外部不可以用,作用于可行
    //专门用来在屏幕上打印数据的
    //是C语言标准库中提供的一个库函数

    1. #include
    2. int main()
    3. {
    4. printf("hello bit\n");
    5. printf("he he\n");
    6. return 0;
    7. }

     常见错误:

    #include
    int main(){
        printf("my favourite TV is modren family\n");
        printf("you are my baby\n");
        return 0;
    }

    不同的.c可以调用到主函数

    一个项目只能有一个主函数

    4.数据类型

    //%d - 打印10进制的整数
    //%c - 打印字符

    //sizeof 是一个操作符,是计算变量的大小的

    按一下键盘上的:ctrl+F5(运行)

    //字节的换算:

    1 B/byte(字节) = 8 bit(比特)(位) 。

    1 KB(千字节) = 1024 B/byte(字节) 。

    1 MB = 1024 KB 。

    1 GB = 1024 MB 。

    1TB =1024 GB 。

    1 PB = 1024 TB 。

    1 EB = 1024 PB。

    char        //字符数据类型

    short       //短整型

    int         //整形

    long        //长整型

    long long   //更长的整形

    float       //单精度浮点数//浮点数--小数点可以浮动,所以可称浮点数

    double      //双精度浮点数

    sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。

    返回值:内存所占字节数

    计算机常见的单位

    bit

    byte

    KB

    MB

    GB

    TB

    PB

    1. #include
    2. int main(){
    3. printf("%d\n", sizeof(char));
    4. printf("%d\n", sizeof(short));
    5. printf("%d\n", sizeof(int));
    6. printf("%d\n", sizeof(long));
    7. printf("%d\n", sizeof(long long));
    8. printf("%d\n", sizeof(float));
    9. printf("%d\n", sizeof(double));
    10. return 0;
    11. }

    注意:存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。

    类型的使用:

    char ch = 'w';

    int weight = 120;

    int salary = 20000;

    5.变量 

    生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)

    有些值是可变的(比如:年龄,体重,薪资)。

    不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。

    1)定义变量的方法

    1. int age = 150;
    2. float weight = 45.5f;
    3. char ch = 'w';

    2)变量的名字

    只能由字母(包括大写和小写)、数字和下划线( _ )组成。

    不能以数字开头。

    长度不能超过63个字符。

    变量名中区分大小写的。

    变量名不能使用关键字。

    3)变量的分类

    变量分为:全局变量和局部变量

    1. #include
    2. int global = 2019;//全局变量
    3. int main()
    4. {
    5. int local = 2018;//局部变量
    6. //下面定义的global会不会有问题?
    7. int global = 2020;//局部变量
    8. printf("global = %d\n", global);
    9. return 0;
    10. }

    上面的局部变量global变量的定义其实没有什么问题的!

    当局部变量和全局变量同名的时候,局部变量优先使用。

    4)变量的使用

    //这里介绍一下输入:scanf

    //输出语句:printf 

    //在创建变量的同时给一个初始值

    scanf容易出现错误, 需要在底下的提示复制其中的部分

    1. #include
    2. int main()
    3. {
    4. int num1 = 0;//进域申请了四节,出域释放了四节
    5. int num2 = 0;
    6. int sum = 0;
    7. printf("输入两个操作数:>");
    8. scanf("%d %d", &num1, &num2);
    9. sum = num1 + num2;
    10. printf("sum = %d\n", sum);
    11. return 0;
    12. }

    5)变量的作用域和生命周期 

    变量必须赋初值

    全局变量:可以先声明,后使用

    局部变量:必须有初值

    作用域
    作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
    的而限定这个名字的可用性的代码范围就是这个名字的作用域。
    1. 局部变量的作用域是变量所在的局部范围。(int main()内部)
    2. 全局变量的作用域是整个工程。(int main()外部)
    生命周期
    变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
    1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
    2. 全局变量的生命周期是:整个程序的生命周期。

    //全局变量可以在主函数内部调用

    //printf()函数只能在函数内部执行

    //注意:编译器自上而下

    //如果在下面定义了全局变量,而前面用了,需要声明int g_a;最好是在前面写

    //同一项目可以跨文件进行使用;

    //extern声明外部符号:extern int g_a

    6)常量

    C语言中的常量和变量的定义的形式有所差异。
    C语言中的常量分为以下以下几种:
    1.字面常量:1 3 3.3 5 10(直接写出来,就可以看出来)
    2.const 修饰的常变量,(不能修改了,但仍被认为是变量)(虽然不能变,但本质上仍然是变量(不能放进数组arr[M])

    3.#define 定义的标识符常量(可以放进数组arr[M])

    4.枚举常量:0 1 2 3 4 5

    //枚举就是一一列举

    //血型,性别,三原色(-Red Green Blue)都可以一一列举

    EG:

    1. #include
    2. //举例
    3. enum Sex
    4. {
    5. MALE,//0
    6. FEMALE,//1
    7. SECRET//2
    8. };
    9. //括号中的MALE,FEMALE,SECRET是枚举常量
    10. //枚举分别对应:0,1,2
    11. int main()
    12. {
    13. const float pai = 3.14f; //这里的pai是const修饰的常变量
    14. const float pais=5.14;//是不能直接修改的!
    15. printf("pais=%d pais=%d\n", pai, pais);
    16. //#define的标识符常量 演示
    17. #define MAX 100
    18. printf("max=%d\n", MAX);
    19. //枚举常量演示
    20. printf("%d\n", MALE);
    21. printf("%d\n", FEMALE);
    22. printf("%d\n", SECRET);
    23. return 0;
    24. }

    4. 字符串+转义字符+注释

    //C语言提供了一个库函数,可以计算字符串的长度

    //strlen()

    //数长度时,\0不算字符长度

    //无\0的长度不能得出,因为其后的数是随机的

    //字符必须用转义字符引起来

    1)字符串

    这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。

    注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

    //%s 打印字符串

    1. #include
    2. //下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
    3. int main()
    4. {
    5. char arr1[] = "bit";
    6. char arr2[] = { 'b', 'i', 't'};//2
    7. char arr3[] = { 'b', 'i', 't','\0' };//数组
    8. printf("%s\n", arr1);
    9. printf("%s\n", arr2);
    10. printf("%s\n", arr3);
    11. return 0;
    12. }

    //因为\0才可以结束,故2例没有出现\0,所以不知道什么时候结束,因此打印的部分出现乱码。

    //监视

    //C语言提供了一个库函数,可以计算字符串的长度

    1. #include
    2. //下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
    3. int main()
    4. {
    5. char arr1[] = "bit";
    6. char arr2[] = { 'b', 'i', 't' };
    7. char arr3[] = { 'b', 'i', 't','\0' };//数组
    8. int len1 = strlen(arr1);
    9. int len2 = strlen(arr2);
    10. int len3 = strlen(arr3);
    11. printf("%s\n", arr1);
    12. printf("%s\n", arr2);
    13. printf("%s\n", arr3);
    14. printf("%d %d %d\n", len1, len2, len3);
    15. return 0;
    16. }

    2)转义字符

    \\转义:转变原来的意思

    1. #include
    2. int main()
    3. {
    4. printf("c:\code\test.c\n");
    5. return 0;
    6. }
    转义字符意义ASCII码值(十进制)
    \a警告字符,响铃(BEL)007
    \b退格(BS) ,将当前位置移到前一列008
    \f换页(FF),将当前位置移到下页开头012
    \n换行(LF) ,将当前位置移到下一行开头010
    \r回车(CR) ,将当前位置移到本行开头013
    \t水平制表(HT) 009
    \v垂直制表(VT)011
    \'单引号039
    \"双引号034
    \\反斜杠092

     进制

    \dddddd表示1~3个八进制的数字。 如:\130 X(前面是0-7则是八进制)
    \xdddd表示2个十六进制数字。 如: \x30 0

    \\在c语言中,单引号是字符串的标志,如果想要一个真实的单引号,可以向前面加入\

    1. #include
    2. int main()
    3. {
    4. //问题1:在屏幕上打印一个单引号',怎么做?
    5. //问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
    6. printf("%c\n", '\'');
    7. printf("%s\n", "\"");
    8. return 0;
    9. }
    1. //程序输出什么?
    2. #include
    3. int main()
    4. {
    5. printf("%d\n", strlen("abcdef"));
    6. // \62被解析成一个转义字符
    7. printf("%d\n", strlen("c:\test\628\test.c"));
    8. return 0;
    9. }

    6:a,b,c,d,e,f

    14:c,:,\t,e,s,t,\62(8进制),2,8,\t,e,s,t,.,c 

    \\一个转义字符整体是一个字符长度

    5.注释

    1. #include
    2. int Add(int x, int y)
    3. {
    4. return x+y;
    5. }
    6. /*C语言风格注释
    7. int Sub(int x, int y)
    8. {
    9. return x-y;
    10. }
    11. */
    12. int main()
    13. {
    14. //C++注释风格
    15. //int a = 10;
    16. //调用Add函数,完成加法
    17. printf("%d\n", Add(1, 2));
    18. return 0;
    19. }

    注释有两种风格:

    C语言风格的注释 /*xxxxxx*/

    缺陷:不能嵌套注释(一般别用)

    C++风格的注释 //xxxxxxxx

    可以注释一行也可以注释多行

  • 相关阅读:
    TFTP协议详解
    毕业设计 基于单片机的地震探测器系统 - stm32 物联网 嵌入式
    Python使用opencv基于坐标范围批量剪裁(图像)并将剪裁后的图像保存到指定的新文件夹中
    从源码全面解析 Java SPI 的来龙去脉
    持续集成指南:GitHubAction 自动构建+部署AspNetCore项目
    每天一个数据分析题(一百六十四)
    遥感SCI期刊模板下载教程———IEEE TGRS、GRSL、JSTARS
    解决RequestParam.value() was empty on parameter 0
    生活中的光伏
    “一键合并剪辑,轻松添加片头——全新的视频编辑工具让你成为视频制作达人“
  • 原文地址:https://blog.csdn.net/m0_47017197/article/details/127605803