知识点汇总

目录

一、初识C语言

1、什么是C语言

2、第一个C语言程序

 3、数据类型

4、变量和常量

5、常量

6、字符串

7、转义字符

8、注释

9、选择语句

10、循环语句

 11、函数

 12、数组

13、操作符

14、关键字


一、初识C语言

1、什么是C语言

  • 计算机语言(C/C++/Java/Python等) :实现人与计算机交流的语言

       汉语、英语、日语等:实现人与人之间交流的语言

  • C语言广泛应用于底层开发,但也可用于上层软件开发(只是不擅长而已)

  •  ANSIC国际标准

          为了避免各个开发厂商用的C语言语法产生差异而制定的(用来保证不同企业之间可以相互使用)

  • 计算机语言的发展

          机器语言(二进制由0/1组成)--->汇编语言---------------------->B语言---------->C语言

          0001(此时用机器语言写代码的称为科学家)

          1001---------->此时假设1001代表的是add,称add为助记符

          低级语言----------------------------------------------------------------------------------->高级语言

  • C语言是面向过程的计算机编程语言
  • 学习过程中主要的编译器

          Clang(用于刷题)/GCC(Linux)/MSVC(vs)

2、第一个C语言程序

  • vs使用步骤

          创建项目(使用英文名称)--->创建源文件(无c语言选项使用c++)--->写代码

第一步创建项目
第一步:创建项目
第二步:点击创建空项目
第三步:输入项目名称等
第四步:右键源文件新建项
第五步:选择C++文件并改名称后缀为.c文件
  •  源文件:.c文件

        头文件:.h文件

  • 快捷键:

          Ctrl+F5---编译+链接+运行

          F5---------会出现一闪而过的情况(有的编译器)

  • main函数(主函数):

          有且仅有一个(必须要有一个),且在一个工程中也只能有一个

          老式写法为void main,现在大都改为int main

          程序执行从main函数开始执行

  •  库函数:使用库函数就要包含对应的头文件

          printf函数:标准输出函数

          scanf函数:标准输入函数

                    scanf("%d%d",&a,&b),若输入成功一个则返回1,输入成功两个则返回2,输入失败返回EOF(-1)(文件结束标志)

  •  
    示例

 3、数据类型

  • 计算机单位

          bit(比特):一个二进制位(0/1)

          byte(字节):1byte = 8bit

          KB(千字节):1KB = 1024byte

          GB(吉字节):1GB = 1024KB

          TB(太字节):1TB = 1024GB

          PB(拍字节):1PB = 1024TB

  •  C语言内置类型:

          (1)char:字符类型

          (4)int:整型

          (2)short:短整型

          (4)long:长整型

          (8)long long:更长的整型

          (4)float:单精度浮点型

          (8)double:双精度浮点型

  • 不同的地方使用恰当的类型可以达到节省空间的效果(决定了为变量开辟空间的字节数)

          例如:年龄age,使用短整型short即可,仅仅需要占用2个字节的空间

  •  sizeof的使用

         用来计算类型和变量的大小,sizeof(int)=4;

  • 不同类型对应的不同符号

         字符型:%c

          整型:%d

          短整型:%hd

         长整型:%ld

         更长的整型:%lld

         单精度浮点型:%f

         双精度浮点型:%lf

4、变量和常量

  • 变量:用来描述变化的数据

       常量:用来描述不变的数据

  • 定义变量的方式

          short age = 15;

          float weight = 55.5f;(55.5默认为double类型,加上f使其类型变为float)

          char ch = 'c';(单引号--字符;双引号--字符串)

  • 变量的分类:全局/局部

          全局变量:在大括号之外定义的

                 同一项目的,其他文件中的全局变量不可直接使用,要加声明外部符号extern int 名称;

          局部变量:在大括号之内定义的

  • 当全局变量和局部变量中有相同名称的变量时:

          若都可以使用的话,保持局部优先原则

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

          作用域:变量可以使用的范围

                   局部变量:变量所在的局部范围

                   全局变量:整个工程

          生命周期:创建到销毁之间的一个时间段

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

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

  • 初始化

          全局变量不初始化默认为0

          局部变量不初始化默认为随机值

5、常量

  •  字面常量:可以直接写出来的,其中"abcd"为字符串常量
  • const修饰的常变量,只是具有常属性,但本质上还是变量
  • #define定义的标识符常量,命名时都为大写字母(无等于号;无分号)
  • 枚举常量:可一一列举的(一种自定义类型的方法)

          其中若使用printf("%d",red);//则此时打印结果为0

          使用示例:enum Color ch = red;

6、字符串

  •  字符串:由双引号引起来的一串字符
  • 字符串的结束标志:\0(转义字符)
  • 区分arr1和arr2的不同,arr1中末尾默认添加\0,且多占用一个字符长度,arr2则没有。

          导致用%s打印时出现不同,有\0正常打印,无\0则不可正常打印,因为不知在何处停止打印

          导致用strlen()函数计算长度时出现不同,有\0正常计算,无\0则不知计算到何处为随机值

  • 使用strlen()函数则需要使用头文件string.h
  • 若在中间添加\0,则会在中间就提前结束

7、转义字符

  • 转义字符本质上为字符,打印时使用%c
  • 重要的转义字符:

          \\:用来表示一个\字符

          \':用来表示一个'字符

          \":用来表示一个"字符

          \t:水平制表符,等价于tab键位的使用

          \n:换行符

          \ddd:其中d为八进制数字,最多为三位,例如\130代表为大写X

          \xdd:x为前缀必须要有,dd为16进制数字,无上限要求,例如\x42代表为大写B

  • 记忆的一些ASCII

          \0:0

          0:48

          A:65

          a:97

  • 其中在用到打印目录时:c:\code\test.c,其中的\要写为双\\才能正常打印
  • 其中包含不可打印字符,并非所有字符均可打印

8、注释

  • /*  */  以及 // 两种注释方式

          /**/为C语言的注释风格,但是例如/*a  /*  b */  c */,并不会注释掉c中内容,因为存在此缺陷,所以引用//(C++注释风格)

9、选择语句

  • 选择语句包含:

          if else语句

          switch语句

10、循环语句

  •  循环语句包含:

          while语句

          do...while语句

          for语句

 11、函数

  • 作用:简化代码,反复使用

 12、数组

  • 一组相同类型元素的集合

  • 数组初始化的三种方式(上图)
  • 其中数组长度不可为变量,只能为常量

          但是在c99标准中增加了变长数组的概念,此时的数组长度可以为变量,但并非所有编译器均可(vs2022中不可用)

  • 数组的输入输出要结合循环语句进行(for/while/do..while)

13、操作符

  • 算术操作符

          + - * / %

  • 移位操作符

          <<   >>

  • 位操作符

          & | ^

  • 赋值操作符

          = += -= /= &= ^= |= >>= <<=

  • 单目操作符:只有一个操作数的操作符

          ! - + & sizeof ~ -- ++ * ()

 单目操作符部分使用方式如上图所示。

          其中非0为真,!5=0;  !0=1;

          其中++/--不要过于困难化,例如b=(++a)+(++a)+(++a),在不同编译器结果不同是错误代码

  • 关系操作符

          > >= < <= != ==

  • 逻辑操作符

          &&  逻辑与(一假为假)

          ||     逻辑或(一真为真)

  • 条件操作符

          exp1 ? exp2 : exp3

          (若exp1为真,则计算exp2,为假则计算exp3,2/3表达式只计算其中一个)

  • 逗号表达式

          exp1 , exp2 , exp3 ..

          (b=(a=3+1,c=1+1,d=a-c)),则a=4,c=2,d=2,但是b的值=(d=a-c),只看最后一个

  • 下标引用、函数调用和结构成员

          [] 下标引用,运用于数组中,操作数:数组名+数组个数=2个

          () 函数调用,例如Add(),操作数:函数名+未知个数参数=未知个(至少一个)

          .

          ->

14、关键字

  • C语言中本身存在的,不可以创造关键字
  • auto

     char / int / short / long / double / float / signed  /unsigned

     if / else / do / while / for / switch / case / break / continue / default

     const / static / typedef / sizeof / union / enum / struct

     goto / extern / return / void

     volatile / register

  • auto---自动存储变量

          例如;auto int a = 5;,代表a是自动销毁的,经常用于局部变量

  • typedef:类型重命名

          typedef unsigned int unint;,此时unint具有无符号整型的功能

  • register:寄存器,计算机的一种存储器,是集成到CPU上的

           例如:register int num = 5;//推荐将num中的值放入寄存器中,但是因为寄存器空间较小,会经由编译器决定是否真正放入寄存器中

          其中num是取不到地址的,因为若放入寄存器中了,就不再内存中了,只有在内存中才可以取到地址

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值