课堂笔记c++
创始人
2024-05-28 17:36:22
0

3.2

helloworld程序:

解决提示窗一闪而过:

1. 通过 system()函数解决:

在 return 0;之前 添加 system("pause"); 函数调用。

2. 借助VS工具解决:

在项目上 ---》右键 ---》 属性 ---》 配置属性 ---》 连接器 ---》 系统 ---》 子系统

---》 在下拉框中选择“控制台 (/SUBSYSTEM:CONSOLE)”

两种编写 helloworld 的方式:

1. 借助VS编辑工具编写。

创建项目 --》 创建 helloworld.c 源文件 --》 写 helloworld程序 --》Ctrl + F5 执行。

2. 借助记事本、gcc编译工具编写。

gcc编译工具的环境变量配置:

在QT的安装目录中找 gcc.exe 目录位置。例如: C:\Qt\Qt5.5.0\Tools\mingw492_32\bin

我的电脑 --》属性 --》 高级系统设置 --》 环境变量 --》系统环境变量 --》 path --》 将gcc.exe 目录位置写入到 path的值中。

使用记事本创建 helloworld.c 文件 ——》 在记事本中写 helloworld 程序

--》 使用gcc编译工具 ,在记事本写的 helloworld.c 所在目录中,执行 gcc helloworld.c -o myhello.exe

--》 在终端(黑窗口)中,运行 : myhello.exe

单行注释://

多行注释:/* 注释内容 */

不允许嵌套使用。 多行中可嵌套单行。

system 函数:

执行系统命令。如: pause、cmd、calc、mspaint、notepad.....

system("cmd"); system("calc");

清屏命令:cls; system("cls");

gcc编译4步骤:【重点】

1. 预处理-Exxx.i预处理文件

gcc -E xxx.c -o xxx.i

1) 头文件展开。 --- 不检查语法错误。 可以展开任意文件。

2)宏定义替换。 --- 将宏名替换为宏值。

3)替换注释。--- 变成空行

4)展开条件编译 --- 根据条件来展开指令。

2. 编译-Sxxx.s汇编文件

gcc -S hello.i -o hello.s

1)逐行检查语法错误。【重点】--- 整个编译4步骤中最耗时的过程。

2)将C程序翻译成 汇编指令,得到.s 汇编文件。

3. 汇编-cxxx.o目标文件

gcc -c hello.s -o hello.o

1)翻译:将汇编指令翻译成对应的 二进制编码。

4. 链接无xxx.exe可执行文件。

gcc hello.o -o hello.exe

1)数据段合并

2)数据地址回填

3)库引入

调试程序:

添加行号:

工具--》选项 --》文本编辑器--》C/C++ --》行号 选中。

1. 设置断点。F5启动调试

2. 停止的位置,是尚未执行的指令。

3. 逐语句执行一下条 (F11):进入函数内部,逐条执行跟踪。

3. 逐过程执行一下条 (F10):不进入函数内部,逐条执行程序。

4. 添加监视:

调试 --》窗口 --》监视:输入监视变量名。自动监视变量值的变化。

3.3

常量:不会变化的数据。不能被修改。

1. “hello”、'A'、-10、3.1415926(浮点常量)

2. #define PI 3.1415 【强调】:没有分号结束标记。 【推荐】 定义宏: 定义语法: #define 宏名 宏值

3. const int a = 10;定义语法:const 类型名 变量名 = 变量值。

const关键字: 被该关键字修饰的变量,表示为只读变量。

变量:会变化的数据。能被修改。

定义语法:类型名 变量名 = 变量值。(一般方法)

变量三要素:类型名、变量名、变量值。int r = 3;float s = PI*r*r;(变量值是一个表达式)

变量的定义:int a = 40;

变量的声明:1) int a; 没有变量值的变量定义 叫做声明。

2)extern int a; 添加了关键字 extern。

1. 变量定义会开辟内存空间。变量声明不会开辟内存空间。

2. 变量要想使用必须有定义。

当编译器编译程序时,在变量使用之前,必须要看到变量定义。如果没有看到变量定义,编译器会自动找寻一个变量声明提升成为定义。

如果该变量的声明前有 extern 关键字,无法提升,不会继续定义这个变量。编译器会报错。

【建议】:定义变量时。尽量不要重名。

标识符:

变量和常量的统称。

命名规则:1. 通常常量使用大写、变量使用小写。大小写严格区分。

2. 只能使用字母、数组、下划线(_)命名标识符。且,数字不能开头。 a-z/A-Z/0-9/_

int a5ir = 10; ok

int _34F = 6; ok

float s2_i85c = 5.4; ok

int 98ti_54 = 4; error.

3. 禁止使用关键字和系统函数作为标识符名称。 main/system/printf/sleep....

sizeof关键字:

不是函数。用来求一个变量、类型的大小。 返回一个 无符号整数。 使用 %u 接收返回值,vs用%d接受也可以。

方法1: sizeof(类型名)-- sizeof(int)

方法2: sizeof(变量名)--- int a = 20; sizeof(a)

【了解】: sizeof 变量名/类型名举例1: sizeof int

举例2: sizeof a

有符号整型:

signed: 有符号 (超级不常用, 通常省略):int a = 10; a = -7;

int类型:%d 4 字节

int 名 = 值;

short类型:%hd 2 字节

short 名 = 值; short s1 = 3;

long类型:%ld 4 字节 (windows: 32/64: 4字节; Linux:32位:4字节, 64位:8字节)

long 名 = 值;long len = 6;

long long 类型:%lld 8 字节

long long 名= 值; long long llen = 70;

无符号整型:

unsigned: 无符号 只表示数据量,而没有方向(没有正负)

unsigned int类型:%u 4 字节

unsigned int 名 = 值;

unsigned int a = 40;

unsigned short类型:%hu 2 字节

unsigned short 名 = 值;

unsigned short s1 = 3;

unsigned long类型:%lu 4 字节 (windows: 32/64: 4字节; Linux:32位:4字节, 64位:8字节)

unsigned long 名 = 值;

unsigned long len = 6;

unsigned long long 类型:%llu 8 字节

unsigned long long 名 = 值;

unsigned long long llen = 70;

char字符类型:1字节

存储一个字符。本质是ASCII码。 ‘A’、‘a’、‘%’、‘#’、‘0’

格式匹配符: %c

‘A’:65

‘a’:97

‘0’:48

‘\n’:10

‘\0’: 0

转义字符:

‘\’将普通字符转为 特殊意。 将特殊字符转为本身意。

'\n' 和 ‘\0’

实型(浮点数、小数):

float:单精度浮点型。 4字节

float v1 = 4.345;

%f格式匹配符。 默认保留 6 位小数。

double:双精度浮点型。8字节 【默认】

double v2 = 5.678;

unsigned float v1 = 4.345; 无符号的 float 数据

unsigned double v2 = 5.678; 无符号的 float 数据

printf("n = %08.3f\n", n);

输出的含义为:显示8位数(包含小数点), 不足8位用0填充。并且保留3位小数。对第4位做四舍五入。

进制和转换:

十进制转2进制。--- 除2反向取余法。 【重点】

十进制转8进制。--- 除8反向取余法。

十进制转16进制。--- 除16反向取余法。

int a = 56;-- 111000

int b = 173; -- 10101101

2进制转10进制。

2^10 = 1024

2^9 = 512

2^8 = 256

2^7 = 128

2^6 = 64

2^5 = 32

2^4 = 16

2^3 = 8

2^2 = 4

8进制:

8进制转10进制。

定义8进制数语法:

056: 零开头,每位数0~7之间。---- 46

0124: ---- 84

8进制转2进制。

按421码将每个八进制位展开。

056:5--》 101。 6--》 110 。

101110

05326:5 --》 101。 3--》 011。 2--》 010。 6--》 110

2进制转8进制:

1 010 111 010 110:012726

自右向左,每3位一组,按421码转换。高位不足三位补0

16进制:

语法: 以0x开头,每位 取 0-9/A-F/a-f

A -- 10

B -- 11

C -- 12

D -- 13

E -- 14

F -- 15

16 -- 10:

0x1A: 16+10 = 26

0x13F:15+3x16+256

16 -- 2:

0x1A:00011010

0x13F:000100111111

2 -- 16:

0001 0011 1111:13F

自右向左,每4位一组,按8421码转换。高位不足三位补0

总结:

int m = 0x15F4;

int n = 345;

int var = 010011; // 不允许。 不能给变量直接复制 二进制数据。

输出格式:

%d %u %o %x %hd %hu %ld %lu %lld %llu %c %f %lf

%d %u %x %c %s

存储知识:

1 bit位 就是一个 二进制位

一个字节 1B = 8bit位。

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

源码反码补码:【了解】

源码:

43 -> 00101011

-43 --> 10101011

反码:

43 -> 00101011

-43 --> 10101011

11010100

补码:(现今计算机采用的存储形式)

43 -> 00101011: 正数不变

-43 --> 11010101: 负数,最高位表符号位, 其余取反+1

43-27 ==》 43 + -27

人为规定: 10000000 --》 -128

-------------------------------------------------

char 类型:1字节 8个bit位。 数值位有7个。

有符号: -2^7 --- 2^7-1 == -2^(8-1) -- 2(8-1) -1

--》 -128 ~ 127

无符号: 0 ~ 2^8 -1

--》 0~255

不要超出该数据类型的存储范围。

short类型:2字节 16bit

有符号: -2^15 --- 2^15-1 == -2^(16-1) -- 2(16-1) -1

--》 -32768 ~ 32767

无符号: 0 ~ 2^8 -1

--》 0~65535

int 类型:4字节-2^(32-1) -- 2^(32-1)-1

有符号:

--》 -2147483648 ~ 2147483647

无符号:0~2^32 -1

--》 0~4294967295

long类型:4字节

有符号:

--》 -2147483648 ~ 2147483647

无符号:0~2^32 -1

--》 0~4294967295

longlong 类型:8字节

有符号:

--》 -2^(63) ~ 2^(63)-1

无符号:

--》 0~2^63-1

相关内容

热门资讯

假如我有一只尼尔斯的鹅想象作... 假如我有一只尼尔斯的鹅想象作文假如我有一只尼尔斯的鹅想象作文1  20xx年12月份,离末世预言只有...
春节趣事作文 春节趣事作文(精选24篇)  在平平淡淡的学习、工作、生活中,大家都有写作文的经历,对作文很是熟悉吧...
我的老师作文700字 我的老师作文700字(精选51篇)  无论是在学校还是在社会中,大家都不可避免地要接触到作文吧,借助...
小学生写端午节作文 小学生写端午节作文  导语:时间飞一般地流逝,往事如同过往云烟般,消散在记忆的深处。回望前年的端午节...
秋天的图画作文 -作文 秋天的图画作文 -作文 秋天是丰收的季节,也是菊花开放的季节,树木枯萎的季节,还是凉爽的季节,秋天的...
600字作文栀子花开的季节 600字作文栀子花开的季节  导语:当阳光打在毕业的脸庞,栀子花开的芬芳告诉我们,这已是离别的时光。...
教师节的作文100字 【精品】教师节的作文100字四篇  在日常生活或是工作学习中,说到作文,大家肯定都不陌生吧,作文是人...
感动文作文300字 【精选】感动文作文300字汇编10篇  在日常的学习、工作、生活中,大家都写过作文吧,借助作文可以宣...
不一样的班规作文 不一样的班规作文不一样的班规上午第一节课时,我们班里的“胖子”迟到了。因此,午放学时我们全班被老师留...
中秋节赏月小学生优秀作文 中秋节赏月小学生优秀作文中秋节赏月小学生优秀作文1  月亮,最大在八月十五,最圆在八月十六。中秋节我...
我们的节日春节作文 我们的节日春节作文(精选6篇)  在学习、工作或生活中,大家或多或少都会接触过作文吧,借助作文可以宣...
游黄龙洞学生作文 游黄龙洞学生作文  你想让我说哪儿的景色最美,哪儿的山水最美,那我毫不犹豫的想起张家界。今年国庆节,...
运动会的作文 有关运动会的作文(精选59篇)  在现实生活或工作学习中,大家都跟作文打过交道吧,借助作文可以宣泄心...
难忘的中秋节作文300字 【精选】难忘的中秋节作文300字7篇  在现实生活或工作学习中,大家都写过作文,肯定对各类作文都很熟...
圣诞节的作文500字 精选圣诞节的作文500字集合六篇  在学习、工作、生活中,大家都跟作文打过交道吧,写作文是培养人们的...
童趣作文300字 有关童趣作文300字八篇  在学习、工作乃至生活中,大家都跟作文打过交道吧,借助作文可以宣泄心中的情...
冬天里的一缕阳光的作文 冬天里的一缕阳光的作文800字(精选10篇)  在学习、工作或生活中,大家总免不了要接触或使用作文吧...
教师的作文 关于教师的作文(精选44篇)  在平时的学习、工作或生活中,大家都尝试过写作文吧,借助作文可以宣泄心...
我的五样优秀作文 我的五样优秀作文  “生命中最宝贵的五样”,黑板上几个不同寻常的大字仿佛预示我们也会有一节不同寻常的...
作文 足球传奇 作文 足球传奇  “喂,臭小子,快起床了,还有几天就入学了,暑假作业你才写了多少,赶紧起床!”一大早...