【C】初识C语言(上)

简介: c语言入门,整体的了解

 前言      

如果觉的博主的文章还不错的话,还请点赞,收藏,关注支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。

本篇介绍C语言的一些基础知识

另分享一篇关于vs快捷键的博文可能对大家的工作有所帮助:

vs快捷键

本篇暂时不深入讲解,后续会逐渐渗透

目录 

1.什么是C语言

2.编程环境的构建

3.C 程序结构

4. 数据类型

4.1 变量的命名

4.2 变量的分类

4.3变量的使用

4.3 变量的作用域和生命周期

4.54常量(不变的量)

4.41 const 修饰的常变量

4.42 #define 定义的标识符常量

4.43枚举常量

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

5.1 字符串

5.2 转义字符

5.21 三字母词

5.22 \ddd    

5.23 xdd

6. 注释

7. 选择语句

8. 循环语句

9. 函数


1.什么是C语言

    • C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
    • 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超 级电脑等作业平台。
    • c语言的研发时期大概在1972年,如下是2021年计算机语言的总榜,通过对比可知C语言是最值得信任的语言,c语言是鼻祖的存在,可想而知c语言对学习其他语言的帮助。

    • image.gif编辑

    2.编程环境的构建

      • C语言是一门面向过程的计算机编程语言,与C++Java等面向对象的编程语言有所不同。 其编译器主要有ClangGCCWIN-TCSUBLIMEMSVCTurbo C等。Gcc是最常用的编译器,但我们初学一般使用集成开发环境--IDE,如:Visual Studio  具体下载可参考我的另一篇博客:

      vs下载及环境设置


      3.C 程序结构

        • 在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考。

          C 程序主要包括以下部分:

          • 预处理器指令
          • 函数
          • 变量
          • 语句 & 表达式
          • C 语言有两种注释方式:

          1

          // 单行注释

          • 以 // 开始的单行注释,这种注释可以单独占一行。

          1

          2

          3

          4

          5

          6

          /* 单行注释 */

          /*

           多行注释

           多行注释

           多行注释

           */

          • /* */ 这种格式的注释可以单行或多行。
          • C Hello World 实例:

          让我们看一段简单的代码,可以输出单词 "Hello World":

          1

          2

          3

          4

          5

          6

          7

          8

          9

          #include <stdio.h>//预处理指令,#是预处理指令的开头

          intmain()//main是主函数,是程序的入口,有且只有一个

          {

             /* 我的第一个 C 程序 */

             printf("Hello, World! \n");//printf是库函数,使用需要包含头文件stdio  std                         //input output(标准输入输出) ""括起来的是字符串 

                                                                              // \n换行

             return0;//函数结束的标志,对应开头的int整型

          }

          下面的这种代码也是可以的

          int main(void)//void表示main函数不需要参数
          {
              return 0;
          }

          image.gif

            • 反例:
            //不建议这样写:
            void main()
            {
                //这种写法是非常古老的
            }
            不标准的写法:
            main()
            {
            }

            image.gif


            4. 数据类型

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

              • 类型的使用:
              • 整型:

              char       //字符数据类型

              short       //短整型

              int        //整形

              long        //长整型

              long long   //更长的整形

                • 浮点型:(即小数) 

                float      //单精度浮点数,精确度低

                double     //双精度浮点数,精确度高

                #include <stdio.h>
                int main()
                {
                   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));//   %d 打印10进制的整数
                   printf("%d\n", sizeof(float));
                   printf("%d\n", sizeof(double));
                   printf("%d\n", sizeof(long double));
                   return 0;
                }

                image.gif

                           image.gif编辑

                右侧所得单位为字节byte

                电脑支持的是二进制语言

                image.gif编辑image.gif编辑image.gif编辑

                4.1 变量的命名

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

                不能以数字开头。

                长度不能超过63个字符。

                变量名中区分大小写的。

                变量名不能使用关键字。

                4.2 变量的分类

                局部变量

                全局变量

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

                4.3变量的使用

                float weight = 45.5f;//不加f编译器默认为double类型,加f强制转换为float类型

                image.gif编辑

                #include  

                int main()

                {

                  int num1 = 0;

                 int num2 = 0;

                  int sum = 0;

                  printf("输入两个操作数:>");

                  scanf("%d %d", &num1, &num2);

                  sum = num1 + num2;

                  printf("sum = %d\n", sum);

                  return 0;

                }

                4.3 变量的作用域和生命周期

                作用域

                作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用

                的而限定这个名字的可用性的代码范围就是这个名字的作用域。

                1. 局部变量的作用域是变量所在的局部范围。看最近的{  }即可判断

                2. 全局变量的作用域是整个工程。

                生命周期

                变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

                1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

                2. 全局变量的生命周期是:整个程序的生命周期。

                4.54常量(不变的量)

                C语言中的常量和变量的定义的形式有所差异。

                C语言中的常量分为以下以下几种:

                字面常量:如100、3.14浮点型字面值、’a‘字符字面值、“abcde”字符串字面值

                4.41 const 修饰的常变量

                #include<stdio.h>
                int main() {
                    int num = 10;
                    num = 20; //改变了变量num的值
                    printf("%d\n", num); 
                    return 0;
                }
                image.gif

                image.gif编辑

                直接输入变量,可以看出通过第四行的操作直接改变了变量的输出值

                当在变量前面输入const 如下:

                #include<stdio.h>
                int main() {
                  const int num = 10;
                  num = 20;
                  printf("%d\n", num); 
                  return 0;
                }
                image.gif

                image.gif编辑

                报错: 第四行左值指定说明变量的值不允许改了,说明coonst具有指定作用,这时候后面的值num就具有了常量的属性,但num本质还是一个变量,所以称之为常变量

                       综上const用于需要一个常量,但此值不能改的时候

                4.42 #define 定义的标识符常量

                代码如下:

                image.gif编辑

                如上图输出值为100,如果再输入MAX=200;会怎样呢?

                image.gif编辑

                如图,报错左操作数必须为左值,说明define定义的这个量是不可改变的即常量

                4.43枚举常量

                枚举>一一列举

                c语言中的枚举类型num

                image.gif编辑

                如上输出值为0、1、2,是不可以改变的

                需要注意的是enum下的标点符号

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

                5.1 字符串

                “hello world”

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

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

                 

                #include<stdio.h>
                int main() {
                  char arr1[] = "abc";
                  char arr2[] = { 'a','b','c' };
                  printf("%s\n", arr1);
                  printf("%s\n", arr2);
                  return 0;
                }

                image.gif

                image.gif编辑

                如图可监视到字符串的结束标志\0image.gif编辑

                 arr2输出乱码,但如果在其后加入‘\0’就输出abc,这里就不演示了

                另外想要输出字符串的长度可以使用strlen库函数(string length),需要注意的是包含头文件#include

                演示:

                #include<stdio.h>
                #include<string.h>
                int main() {
                  char arr1[] = "abc";
                  char arr2[] = { 'a','b','c','\0' };
                  printf("%d\n", strlen(arr1));
                  printf("%d\n", strlen(arr2));
                  return 0;
                }

                image.gif

                结果:image.gif编辑

                下面这种方式arr2的输出值为随机值,因为没有\0

                image.gif编辑

                5.2 转义字符

                假如我们要在屏幕上打印一个目录: c:\code\test.c

                我们该如何写代码?

                #include  

                int main()

                {

                printf("c:\code\test.c\n");

                  return 0;

                }

                实际上程序运行的结果是这样的:

                image.gif编辑

                这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。

                下面看一些转义字符。

                \?

                在书写连续多个问号时使用,防止他们被解析成三字母词

                \'

                用于表示字符常量'

                \“

                用于表示一个字符串内部的双引号

                \\

                用于表示一个反斜杠,防止它被解释为一个转义序列符

                \a

                警告字符,蜂鸣

                \b

                退格符

                \f

                进纸符

                \n

                换行

                \r

                回车

                \t

                水平制表符        就是键盘上Tab的意思

                \v

                垂直制表符

                \ddd

                ddd表示1-3个八进制的数字。

                \130 X

                \xdd

                dd表示2个十六进制的数字。

                如: \x30 0

                现在一般不用

                5.21 三字母词

                image.gif编辑 如图??)或??(即为三转义字符分别代表】和【

                如下图若用\加在?前则可防止编译器将他们翻译成三字母词,不过现在的编译器大多不支持三字母词,一些老旧编译器还是支持的

                image.gif编辑

                2.

                image.gif编辑image.gif编辑

                image.gif编辑

                 如图想打印字符形式的单引号如图在单引号前加\即可实现,如图双引号类似

                3.

                image.gif编辑

                如图,若想使  \t 不以转义字符的形式输出,则在其前加 \ ,正常输出。

                5.22 \ddd  

                image.gif编辑

                image.gif编辑

                八进制数130转换成10进制数字,对应的值88 作为 ASCLL码值表示的字符是’X‘

                image.gif编辑

                5.23 xdd

                image.gif编辑

                image.gif编辑

                image.gif编辑

                八进制数字是0——7,所以输出14

                6. 注释

                1. 代码中有不需要的代码可以直接删除,也可以注释掉

                2. 代码中有些代码比较难懂,可以加一下注释文字

                注释有两种风格:

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

                缺陷:不能嵌套注释

                C++风格的注释//xxxxxxxx

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

                 7. 选择语句

                if

                #include

                int main()

                {

                   int coding = 0;

                   printf("你会去敲代码吗?(选择1 or 0):>");

                   scanf("%d", &coding);

                   if(coding == 1)

                  {

                      prinf("坚持,你会有好offer\n");

                  }

                   else

                  {

                      printf("放弃,回家卖红薯\n");

                  }

                   return 0;

                8. 循环语句

                C语言中如何实现循环呢?

                while语句

                for语句

                do ... while语句

                这里暂时只接触一下while循环的实例

                #include

                int main()

                {

                   printf("规划学习\n");

                   int line = 0;

                   while(line<=20000)

                  {

                       line++;

                       printf("我要继续努力敲代码\n");

                  }

                   if(line>20000)

                       printf("好offer\n");

                   return 0; }

                9. 函数

                #include <stdio.h>
                int main()
                {
                   int num1 = 0;
                  int num2 = 0;
                   int sum = 0;
                   printf("输入两个操作数:>");
                   scanf("%d %d", &num1, &num2);
                   sum = num1 + num2;
                   printf("sum = %d\n", sum);
                   return 0;
                }
                上述代码,写成函数如下:
                #include <stdio.h>
                int Add(int x, int y)
                {
                  int z = x+y;
                  return z;
                }
                int main()
                {
                   int num1 = 0;
                  int num2 = 0;
                   int sum = 0;
                   printf("输入两个操作数:>");
                   scanf("%d %d", &num1, &num2);
                   sum = Add(num1, num2);
                   printf("sum = %d\n", sum);
                   return 0;
                }
                int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素

                image.gif


                相关文章
                |
                7月前
                |
                C语言
                【C语言】exit函数详解
                【C语言】exit函数详解
                2456 0
                |
                7月前
                |
                自然语言处理 编译器 C语言
                C语言:练习
                C语言:练习
                58 0
                |
                C语言
                C语言练习
                C语言练习。
                73 1
                |
                6月前
                |
                机器学习/深度学习 人工智能 算法
                |
                7月前
                |
                安全 算法 网络安全
                C语言在安全领域的应用
                本文探讨了C语言在网络安全中的应用,包括密码学算法实现、网络安全工具开发和安全协议实现。C语言因其高效性、可控性和跨平台性,常用于实现AES、RSA等加密算法,开发网络扫描器和入侵检测系统,以及实现SSL/TLS、IPSec等安全协议。代码示例展示了C语言如何进行AES加密解密。尽管C语言在安全领域有显著优势,但面对不断演变的威胁,持续学习和研究新的安全技术至关重要。
                |
                7月前
                |
                Java Linux 编译器
                认识C语言
                认识C语言
                44 0
                |
                7月前
                |
                C语言
                C语言:练习3
                C语言:练习3
                32 0
                |
                C语言
                一些最近总结的C语言要注意的问题和对于一些问题的理解
                一些最近总结的C语言要注意的问题和对于一些问题的理解
                53 0
                |
                C语言 C++
                初识C语言(2)上
                初识C语言(2)
                65 0
                |
                网络协议 Unix 编译器
                初识c语言(上)
                初识c语言(上)
                77 0