第一章第1节:语言入门基础
汇编与C语言
c语言(第一门高级语言偏软件)与汇编语言(低级语言偏硬件)比较
优点:
- 集成化程度更高,代码量更少,开发效率更高
- 程序的可移植性更高
缺点:
-
c语言(方便给人看,集成化程度更高,不方便给机器看)程序运行更慢
-
汇编(不方便给人看,集成化程度更低,方便给机器看)程序运行更快
集成化程度(Python > C++ > C )越高,程序运行越慢
封装上层逻辑、文件批量处理等用更高级语言,底层的具体实现(如要求运算更快对时间要求更高)用c
扩展-如何正确地学习一门编程语言
应该清楚地认识到在实际开发中会用到这门语言所支持的哪一种编程范式,继而沿着这种编程范式进行去学习
编程范式 编程语言 | C | C++ |
---|---|---|
面向过程(一步步;表现在封装了大量的函数) | 支持 | 支持 |
面向对象 | 不支持 | 支持 |
泛型编程 | 不支持 | 支持 |
函数式编程 | 不支持 | 支持 |
… |
操作系统继承表
源文件命名
编程语言命名规范 | xxx.c | xxx.cpp |
---|---|---|
c语言 | 支持 | 不支持 |
c++ | 支持 | 支持 |
编译链接执行的基本命令(详见工程项目开发)
linux下一切接文件,哪怕是一个命令如ls
随堂练习题-2
请写一个程序,读入一个行字符串(可能包含空格),输出这个字符串中字符的数量。
多参读入:
scanf()读入(对于人来讲就是输入)多个参数时,根据分隔符如空格逗 回车等来区分
以下代码因将scanf()函数原型的返回值定义:==成功读入的参数==的个数,想当然成了成功读入的字符个数故出错
运行结果
采用循环读入带空格字符串未考虑每次输入后的‘n’字符
debug截图
正解
运行结果
代码演示
运行截图

terminal-标准输入与标准输出
文件描述符 | |
---|---|
EOF | -1 |
stdin | 0 |
stdout | 1 |
stderr | 2 |
不带restrict皆为C99前
scanf()函数家族
函数原型 | |
---|---|
int scanf(const char *format, …); | 从stdin读取数据 |
int sscanf(const char *buffer, const char *format, …); | 从空终止字符串buffer读取数据 |
int fscanf(const char *stream, const char *format, …); | 从文件流stream读取数据 |
printf()函数家族
函数原型 | |
---|---|
int printf(const char *format, …); | 写结果到stdout |
int sprintf(char *buffer, const char *format, …); | 写结果到字符串buffer |
int fprintf(FILE *stream, const char *format, …); | 写结果到文件流stream |
文件访问
这里只罗列了一般常见的
函数原型 | |
---|---|
FILE *fopen(const char *filename, const char *mode); | 打开filename(关联到文件系统的文件名-文件所在路径)所指示的文件,并返回指向关联到该文件的文件流的指针。mode(空终止字符串)用于确定文件访问模式 |
int fclose(FILE *stream); | 关闭给定的文件流 |
文件访问模式字符串 | 含义 | 解释 | 若文件已存在 | 若文件不存在 |
---|---|---|---|---|
“r” | 读 | 打开文件以读取 | 从头读 | 打开失败 |
“w” | 写 | 创建文件以写入 | 销毁内容 | 创建新文件 |
“a” | 后附/追加 | 后附/追加到文件 | 写到结尾 | 创建新文件 |
“r+” | 读扩展 | 打开文件以读/写 | 从头读 | 错误 |
“w+” | 写扩展 | 创建文件已读/写 | 销毁内容 | 创建新文件 |
“a+” | 后附扩展 | 打开文件以读/写 | 写到结尾 | 创建新文件 |
不同阶段的学习方法和学习目标
前期靠记笔记,后期在学完了所有内容后要在头脑中建立起知识 络
文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114591 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!