C语言 【基础语法】

一、编程环境搭建

  • 编译器:gcc

  • 集成开发环境:vscode

1.1 安装vscode

1.2 设置中文包 插件

1.3 设置C/C++扩展

安装 C/C++ Compile Run extensionC/C++ Extension Pack 扩展

二、基础语法

2.1 第一个c语言程序

2.2 数据类型

2.2.1 变量的语法(重点)
2.2.2 命名规则和规范

标识符是用户编程时使用的名字, 用于给变量、 函数、 类等命名

  • 命名规则

    • 规则:规则是一定要遵循,不遵循就报错

      • 由 数字, 字母, 下划线_ 组成

      • 不能使用数字开头

      • 不能使用关键字

      • 严格区分大小写

    • 关键字(这个不用记):已经占用的名字,用户起名不能和关键字重名

命名规范:可以不遵循,只是一个建议,建议见名知意

  • 风格:

    • 大驼峰

      • 每个单词首字母大写, 例如: MyFirstName
    • 小驼峰

      • 第二个单词开始首字母大写, 例如: myFirstName
    • 下划线命名

      • 每个单词之间使用下划线连接, 例如: my_first_name
2.2.3 char类型

char的本质就是一个1字节大小的整型,一个字符对应一个ASCII 编码数字

2.2.4 bool类型

早期C语言没有布尔类型数据,以0代表逻辑假,非0代表逻辑真

C99标准定义了新的关键字_Bool,提供了布尔类型,或者也可以使用stdbool.h中的bool

2.2.5 数据类型长度(大小)
  • bit(比特)

    • 一个二进制代表一位,一个位只能表示0或1两种状态。
  • Byte(字节)

    • 一个字节为8个二进制,称为8位,计算机中存储的最小单位是字节。
  • 使用sizeof查看数据长度,长度在不同平台是不一样。

2.2.6 可移植的类型

C语言在可移植类型 stdint.h 和 inttype.h 中规定了精确宽度整数类型,以确保C语言的类型在各系统内功能相同

2.2.7 常量

与变量不同,常量的值在程序运行时不会改变

三、数值表示

3.1 C语言如何表示相应进制数

进制 描述
十进制 以正常数字1-9开头,如15
八进制 以数字0开头,如017
十六进制 以0x或0X开头,如0xf
二进制 以0b或0B开头,如0b1111

3.2 数值存储方式

  • 在计算机系统中,数值一律用补码来存储

  • 对于正数,原码、反码、补码相同

  • 对于负数,其补码为它的反码加1

    • 负数的补码符号位不动,其他位求反,最后整个数加1,得到原码
原码

原码:一个数的原码就是它的二进制表示,其中最高位是符号位(0表示正,1表示负)。

十进制 原码
5 0000 0101
10 0000 1010
0 0000 0000
-1 1000 0001
-5 1000 0101

原码表示法简单易懂,与带符号数本身转换方便,只要符号还原即可,但当两个正数相减或不同符号数相加时,必须比较两个数哪个绝对值大,才能决定谁减谁,才能确定结果是正还是负,所以原码不便于加减运算。

反码

对于正数,反码与原码相同,对于负数,符号位不变,其它部分取反(1变0,0变1)。

十进制 原码 反码
5 0000 0101 0000 0101
10 0000 1010 0000 1010
+0 0000 0000 0000 0000
-1 1000 0001 1111 1110
-5 1000 0101 1111 1010
补码(重点)

在计算机系统中,数值一律用补码存储。

十进制 原码 反码 补码
5 0000 0101 0000 0101 0000 0101
10 0000 1010 0000 1010 0000 1010
+0 0000 0000 0000 0000 0000 0000
-1 1000 0001 1111 1110 1111 1111
-5 1000 0101 1111 1010 1111 1011
  • 计算机的基石-补码

对于一个字节(8 位),他所能表示的范围有多大呢?所有可能编码如下,共 256种。

1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0
* * * * * * * *
* * * * * * * *
0 0 0 0 0 0 1 1
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
  • 3.4.2 补码的编码规则

如何来利用这些硬件的基础来表示我们需要的数据范围呢?就是编码。

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

  • 补码的运算

    1. 正整数的补码是其二进制表示,与原码相同

    2. 求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0 变 1,1变 0)后加 1。

    【例 1】求-5 的补码。

    -5 => |-5| => 0000 0101 => 1111 1010 => 1111 1011

    【例 2】数 0 的补码表示是唯一的。

    0 => 0000 0000 => 1111 1111 => 0000 0000

3.3 转换关系

  1. 原码表示方法:最高位为符号位,1表示负数,0表示正数。其余比特位表示数值。

  2. 反码表示方法:正数的反码是其本身,负数的反码为在原码的基础上,符号位不变,其余位取反。

  3. 补码表示方法:正数的补码就是其本身,负数的补码为在原码的基础上,符号位不变,其余位取反,再+1(即在反码的基础上+1)。

四、程序的输入和输出

4.1 输出(重点)

4.2 输入

使用scanf接收输入的内容

五、运算符

运算符就是在各种运算中起到特定作用的符号

5.1 算术运算符

5.2 赋值运算符

5.3 比较运算符

5.4 逻辑运算符

相关推荐
A阳俊yi2 分钟前
Spring Data JPA
java·开发语言
csbysj20206 分钟前
CSS 对齐
开发语言
爱吃巧克力的程序媛6 分钟前
将qt界面中加载css或者qss样式
开发语言·css·qt
njxiejing7 分钟前
Python进度条工具tqdm的安装与使用
开发语言·python
张np35 分钟前
java基础-集合接口(Collection)
java·开发语言
开始了码43 分钟前
QT:ItemWidgets模块介绍
开发语言·qt
汪汪队立大功1231 小时前
JavaScript是怎么和html元素关联起来的?
开发语言·javascript·html
Mr_Dwj1 小时前
【Python】Python 基本概念
开发语言·人工智能·python·大模型·编程语言