(代码新人)以下都是自己看书,查资料的总结,如有错误,欢迎指正。
C写得很好的博客(可参考):13 万字 C 语言从入门到精通保姆级教程2021 年版 (建议收藏)_李南江-CSDN博客
C++(参考):
C++教程(最全)_HeiRen-CSDN博客
常见的计算机语言类型有哪些 ?
机器语言
所有的代码里面只有0和1, 0表示不加电,1表示加电(纸带存储时 1有孔,0没孔)
优点:直接对硬件产生作用,程序的执行效率非常非常高
缺点:指令又多又难记、可读性差、无可移植性
汇编语言
符号化的机器语言,用一个符号(英文单词、数字)来代表一条机器指令
优点:直接对硬件产生作用,程序的执行效率非常高、可读性稍好
缺点:符号非常多和难记、无可移植性
高级语言
非常接近自然语言的高级语言,语法和结构类似于普通英文
优点:简单、易用、易于理解、远离对硬件的直接操作、有可移植性
缺点:有些高级语言写出的程序执行效率并不高
(其中有多条发展线,只挑了C这条简述其历史)最早的高级语言:SHORT CODE(第一个高级语言)—>FORTRAN(广泛被使用的高级语言)–>ALGOL(主要应用于科学和工程运算)–>CPL(基于ALGOL 60的高级语言)(简化)–>BCPL(简化)–>B(研究改进)–>C–>C++(继承C优点,添加面向对象编程)
面向过程和面向对象:——转载至面向对象与面向过程的本质的区别_李光 未来科技-CSDN博客_面向对象和面向过程的区别
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。
如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
C语言是一种用于和计算机交流的高级语言, 它既具有高级语言的特点,又具有汇编语言的特点
相比C语言,C++的主要特点是增加了面向对象机制。
误区1:C++是面向对象的C?不是,C++不仅融合了C的优点,还有其他编程语言的优点
误区2:C是面向过程语言?不是,面向过程还是面向对象是编程思想,跟你使用的编程语言无关。C也可以写面向对象
误区3:C是C++的子集,C支持的语法C++都支持。不是,绝大部分是支持的,但是有些细节不一样
| C | C++ | C# | |
| 简单看编程思想 | 面向过程 | 面向过程和对象混合 | 面向对象 |
| 常用开发环境 |
| 记事本(Notepad++)+命令行 Visual C++ 2008 | |
| 注释 | 单行注释:// 多行注释: 多行注释可以嵌套单行注释 多行注释不可以嵌套多行注释 | 单行注释:// 多行注释: | |
| 数据类型 | (根据分类条件不同分类结果有一点出入)以上是基本类型 预定义类型 包含整型、字符型、布尔型、浮点型、空类型,指针类型 自定义类型 数组、结构体struct、联合体union、枚举enum | ||
| 标识符 |
|
| |
| 变量定义[]是可加可不加的意思 | [修饰符] 类型 变量名标识符; 例:public int a; int a,b; | [修饰符] 类型 变量名标识符; | |
| 关键字(保留字) | |||
| 输入,输出 | scanf("格式控制字符串", 地址列表);printf("格式控制字符串",输出项列表 ); | cin>>变量1>>变量2...>>变量n;cout>>表达式1>>表达式2>>...>>表达式n 也保留了scanf()输入,printf()输出函数 | |
| 运算符 | 按照功能划分:
| 按照功能划分:
| |
| 过程化语句(循环) | while(条件表达式) 循环体 do 循环体 while(条件表达式) for(表达式1;表达式2;表达式3) 循环体 switch(表达式) { case 常量表达式1:语句组1 case 常量表达式2:语句组2 ...... case 常量表达式n:语句组n default:语句组n+1 } | 同 | |
| 控制判断语句 | if(条件表达式) 语句; if(条件表达式) 语句1; else 语句2; if(条件表达式1) 语句1; else if(条件表达式2) 语句2; ...... else if(条件表达式n) 语句n; | 同 | |
| 数组 (分为一维,二维和n维) | 一维:元素类型 数组名[元素个数][={初值表}];([]元素个数是一定要的,第二个[]是可加可不加的意思) 数组使用:数组名[下标] 0<=下标<=元素个数-1 二维:数据类型 数组名[常量表达式1(行)][常量表达式2(列)] 0<=行下标<=行数-1 0<=列下标<=列数-1 | 同 | |
| 指针 | |||
声明,定义,赋值,初始化(终于弄明白了)
如果已经定义了变量或者函数,就不用再声明了。
默认情况下,只有后面定义的变量/函数才可以使用/调用前面定义过的变量/函数
声明是用在如果想把变量/函数的定义写在main函数后面,而且main函数能正常调用这些变量/函数,那就必须在main函数的前面进行变量/函数的声明。
声明(说明变量/函数的性质)可以有多次,而定义(系统分配内存)只能一次。
变量的第一次赋值称为初始化。
对一个变量是可以多次赋值的。
因此除了在源文件的函数内,其他情况(相当于main函数以外)
int a;(声明)
int a=10;(定义)
在源文件的函数内(相当于main函数以内)
extern int a;(声明)
int a;(定义)
高级语言源程序的基本组成单位是语句。语句按功能分为两类:
1,操作运算语句:表达式语句
2,流程控制语句(过程化语句)
后面有时间会补全的



