初步接触C语言,在B站看的比特鹏哥的视频

P1.认识C语言

第一个C语言程序

image-20230916150854682

long 长整型 long long 更长的整型

变量的作用域和生命周期

作用域

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

而限定这个名字的可用范围的代码范围就是这个名字的作用域。 能在哪里用,那里就是作用域

局部变量的作用域就是其所在的代码块   “{}”   中。

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

生命周期

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

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

常量的种类

字面常量:直接书写的常量

const修饰的常量:const--常属性 变量名前加上const后变为一个常变量。

#define定义的标识符常量:

枚举常量:枚举--一一列举 关键字enum

image-20230916163036797

MALE 、FEMALE 、SECRET为枚举常量 默认值为0/1/2

字符串+转义字符+注释

\0 字符串的结束标志,是一个转义字符,ASCII码是和 0 等价(从值上看是等价于0的)

EOF文件结束标志,值是-1.

在C中,用“”定义字符串时自动添加\0,用{‘’,‘’,‘’}不自动添加\0

在C++中,二者均自动添加\0

关键字 strlen----英文string length 统计字符串长度

转义字符

\n换行符 \t 水平制表符

image-20230916202206242

注释

选择语句

if 和else

循环语句

while:

for:

do while:

函数

image-20230916222849124

数组

image-20230916223235486


image-20230916230807405

操作符

移位操作符

image-20230916225134727

右移和左移操作

image-20230916225344787

二进制位向左移动x位,左边丢弃,右边补0

位操作符

image-20230916225257280

&:“与”运算 |:或运算 ^:异或 a^b 二进制位相同取“1”,不同取“2”

取地址

赋值操作符

image-20230916230021594

单目操作符

单目:只有一个操作对象 如 -a

image-20230916230257677


image-20230917210002757


原码符号位不变其他位取反=反码,反码+1=补码,补码-1=反码,反码符号不变其他取反=原码

整数在内存中都是补码,反码只是计算时的一个中间状态, 正数的原码反码补码都是它本身

为什么内存存补码?--------负数取补码后与正数进行加减运算的二进制结果就是十进制结果。

image-20230917214205033


双目:有两个操作对象 如 a+b

三目

关系操作符

image-20230917210452354

运算符

逻辑运算符

image-20230917210556165

条件运算符

image-20230917210626406

a>b?max=a : max=b; ?前面的表达式为真,执行:前面的语句,反之执行:后面的语句。

逗号表达式

image-20230917210915506

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

image-20230917211021403

库函数

strcpy----string.h :

image-20230918232945584

结构体的成员变量为数组时,若要更换内容,无法直接替换,因为name本身时数组的地址。

此时需要用strcpy 来进行字符串拷贝。

常见关键字

image-20230917214425622

auto:

image-20230917214630187

consit:将变量转换为常变量。

extern:

image-20230917221700020

引入/声明外部符号(变量、函数)。

register:寄存器关键字

image-20230917215417439

static:改变作用域

image-20230917220345264

 修饰局部变量时,静态局部变量第一次被初始化。之后再函数调用时不在被初始化,生命周期变长

修饰全局变量时,将全局变量变成私有变量,让全局变量只能在自己所在源文件内部使用

 修饰函数时,改变了函数的链接属性,普通函数具有外部链接属性,被static修饰后变成内部链接属性

struct:结构体

switch/case:

typedef:类型定义 - 类型重定义 给类型重新起个名字

image-20230917215819521

之后 u_int 等于 unsigned int

#define:定义常量和宏。

image-20230917222516075

union:联合体/共用体

volatile:

sizeof计算字节 strlen计算字符串个数

计算机存储数据

1、硬盘 2、内存 3、高速缓存 4、寄存器

指针

内存

为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元大小是1个字节

为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

image-20230917225452478

image-20230918233511683

%p打印地址。 &a:取地址 *p:解引用/间接访问操作符,直接找到p这个地址 此时打印a的值为20。

定义结构体指针 struct 变量名* 指针名

image-20230918233338212

指针变量的大小

32位机器指针大小为4 byte 64位机器指针大小为 8byte

结构体

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值