C语言基础

1. 计算机存储单位

位 bit 字节 byde

1MB=1024KB=1024*1024B=1024*1024*8bit

2. 计算机数据表示形式

2.1. 数值型数据

二进制 0 1

八进制 0-7 421码

十进制 0-9

十六进制 0-9 a-f(10-15) 8421码

2.2. 非数值型数据

打开vscode终端输入man ascii 查看ASCll码表

'\0' 0 字符串的结束标志

'\n' 10 换行

' ' 32 空格

'0' 48 字符0

'9' 57 字符9

'A' 65 大写字母A

'Z' 90 大写字母Z

'a' 97 小写字母a

'z' 122 小写字母z

字符数字 - 48 = 数字

字符数字 - '0' = 数字

大写字母 + 32 = 小写字母

小写字母 - 32 = 大写字母

\ 转义字符

转义字符(Escape Character)在C语言中用于表示那些不能直接在字符串中使用的字符,例如换行符、制表符等。C语言中使用反斜杠(\)作为转义字符的标志。以下是一些常见的转义字符及其用途:

  1. 换行符\n - 用于在字符串末尾添加一个换行。
  2. 制表符\t - 用于添加一个制表符,相当于按下Tab键。
  3. 回车符\r - 用于添加一个回车符。
  4. 单引号\' - 用于在字符串中包含单引号。
  5. 双引号\" - 用于在字符串中包含双引号。
  6. 反斜杠\\ - 用于在字符串中包含一个反斜杠。
  7. 垂直制表符\v - 用于添加一个垂直制表符。
  8. 字符转义序列:如\a(响铃符)、\b(退格符)、\f(换页符)等。

3. 词法符号

3.1. 关键字(32个)

存储类型:auto(自动) static(静态) extern(外部引用) register(寄存器)

数据类型:int(整型) char(字符型) short(短整型) long(长整型) float(单精度浮点型) double(双精度浮点型) signed(有符号) unsigned(无符号)

构造数据类型:struct(结构体) union(共用体) enum(枚举)

选择结构:if else switch case default

循环结构:for while do goto break continue

其他:void(空类型) typedef(重定义类型) volatile(防止编译器优化)

const(常量化:只读) sizeof(计算数据所占空间大小) return(返回值)

栈区:局部变量 由系统自动开辟空间、自动释放

堆区:由程序员手动开辟空间malloc,手动释放空间free

全局区/静态区:全局变量(全局区) static修饰的变量(静态区)

常量区:char *p="hello"; 存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量"abcde",数组的名字等)

3.2. 标识符

命名规则:

  • 由字母、数字、下划线组成
  • 开头不能是数字
  • 不能和关键字重名
  • 最好见名知意

3.3. 运算符

算术运算符 逻辑运算符 关系运算符 位运算符 三目运算符 赋值运算符

3.3.1. 算数运算符

+ - * / % ++ --

整数相除,结果向下取整

%取余

++

1)独立成句

a++;++a;相同,等同于a = a+1

2)赋值运算中

++在后,先赋值后自加;++在前,先自加后赋值

3)打印语句中

++在后,先打印后自加;++在前,先自加后打印

--同理

3.3.2. 逻辑运算符

&&(逻辑与):全真为真,一假为假

||(逻辑或):一真则真,全假为假

!(逻辑非):非真则假,非假则真

截断法则:

在逻辑与运算中:如果前面的表达式为假,则后面的表达式不执行,返回假

在逻辑或运算中:如果前面的表达式为真,则后面的表达式不执行,返回真

3.3.3. 关系运算符

> < >= <= == !=

3.3.4. 位运算符(二进制数 0 1)

& | ^ ~ << >>

&(位与):全1则1,有0则0

| (位或):有1则1,全0则0

^(异或):不同为1,相同为0

~(取反):0变1,1变0

<<(左移):左移几位,右边补几个0

>>(右移):右移几位,左边补几个符号位(正数0,负数1)

置1:二进制数|(1<<n)

例:11001000 | 00000100 (1<<2)=11001100

置0:二进制数&(~(1<<n))

例:11001000 & 11110111 (~(1<<3))=11000000

原码 反码 补码

原码

反码

补码

正数

本身

本身

本身

负数

本身

除符号位,其他位按位取反

反码+1

3.3.5. 三目运算符

表达式1?表达式2:表达式3

执行顺序:判断表达式1是否成立,如果成立就执行表达式2,否则执行表达式3

3.3.6. 赋值运算符

= += -= *= /= %=

num = 3;

num += 3; // num = num +3;

3.3.7. 运算符优先级

口诀:单算移关与 异或逻条赋 从右向左单条赋

单目运算符 ! ~ ++ --

算术运算符 * / % + -

移位运算符 << >>

关系运算符 < <= > >= == !=

位与运算符 &

异或运算符 ^ |

逻辑运算符 && ||

条件运算符 ?:

赋值运算符 = += -= *= /= %=

4. 变量

4.1. 定义格式

存储类型 数据类型 变量名

存储类型:决定变量存储的位置

数据类型:决定变量开辟的空间大小

数据类型

名称

字节大小

取值范围

char

字符型

1

-2^7 ~ 2^7-1

short

短整型

2

-2^15 ~ 2^15-1

int

整型

4

-2^31 ~ 2^31-1

long

长整型

32位:4 64位:8

float

单精度浮点型

4

有效位数6-7位

double

双精度浮点型

8

有效位数15-16位

变量名需要遵循标识符命名规则

4.2. 变量分类

全局变量 局部变量

全局变量

局部变量

定义位置

函数体外部

函数体内部

未初始化

值为0

随机值

存储位置

全局区

栈区

生命周期

同整个程序共存亡

随着函数的结束而结束

作用域

整个程序

当前函数体内部

局部变量和全局变量可以同名,作用域遵循就近原则

5. 常量

概念:在程序运行中不会发生变化的量

5.1. 字符型常量

使用单引号' '包裹的内容都叫字符,单引号只能引一个字符

'a'--->字符常量a

a --->变量a

'!'--->字符!

'1'--->字符1

'\n'-->换行

\:转义 后面可以跟随 字母 数字 符号(转义字符表示一个字符)

5.2. 字符串常量

使用双引号" "包裹的内容都叫字符串,系统会自动在字符串最后添加\0

\0:作为字符串结束的标志

"hello"--->字符串hello 大小:5+1=6

5.3. 整型常量

整数:100 2

5.4. 浮点型常量

小数:2.12 3.14

5.5. 指数常量

3*10^2--->3e2

2*10^-3--->2e-3

注意:e的后面不能是小数 只能是整数

5.6. 标识常量

宏定义:用于标识常量或表达式 宏替换 宏代替

定义格式:#define 宏名 (一般大写)常量或表达式

例:

#include<stdio.h>

#define N 10+10

int main( )

{

printf("%d\n",N*10); //10+10*10=110

}

特点:只做单纯的替换 不进行计算(原样替换)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值