摘要:
1、C语言的缺点 (1)重用性差 (2)维护性差 2、C++ 从面向世界的需求出发来设计我们的程序, 3. 使用增强 A.for (int i = 0; i < 10; i++) { } C语言编译器的话,会报错,因为C语言认为,变量需要先定义,后面再时候,而C++的编译器则是可以边定义边使用。 B、 C语言编译器 : 可以重复定义变量,但是C++则不允许。 ... 阅读全文
摘要:
C/C++ 中的词法分析中的理解。如,/、=、和*只有一个符号,称之为单字符的符号,那么对于多个字符数的符号,比如,/*、和 ==包含了两个的单字符,所以称之为多字符符号。 所以,在编译器录入字符的时候,每录入一个字符,比如 / 之后就会做出判断是否已经录入完毕,如果 后面还有 *,就会合在一起组成一个多字符,重新判断是否已经录入完毕;否则 是当作录入一个字符进行处理。... 阅读全文
摘要:
C语言的学习中,学习到有符号数和无符号数,通过代码确定一个变量是属于有符号数还是无符号数 1、有符号数 有符号数是对于二进制而言的,最最高的为表示符号位,“0”表示正值,“1”表示负值,剩下的位表示数值。也就是说,有符号数的本质特征是,可以出现负值的情况 2、无符号数 无符号数是相对于有符号数的,数的二进制全部表示数值,没有正负之分。所以,无符号数的本质特征... 阅读全文
摘要:
Linux 应用程序的内存分配中,是用 segment(段)进行区别的,使用 size 命令进行查看: size a.out text data bss dec hex filename 1639 264 8 1911 777 a.out 可... 阅读全文
摘要:
1、声明: 一般来说,身后名是加了 extern 关键字,比如: extern int a; // 只是声明 这个过程,是声明,告诉编译器,这个变量已经在别的地方定义过了,这个只做基本的声明,这个过程并没有为其分配内存。 2、定义: int x; // 声明 + 定义 完成了定义,事实上,定义就包含了声明,编译器会为其分配内存。... 阅读全文
摘要:
1、区别 (1)定义、执行时间、作用域 定义、执行时间: #define pchar char * typedef char *pchar; 定义的格式差别,显而易见的,要注意,define 是不能存在分号的(文本替换),而typedef 是存在逗号的(类型的重命名)。 同时,define 由预处理 阅读全文
摘要:
一、自己学习链表 数组的缺点:(1)数据类型一致;(2)数组的长度事先定好,不能灵活更改。 从而引入了链表来解决数组的这些缺点:(1)结构体解决多数据类型(2)链表的组合使得链表的长度可以灵活设置。 基本概念:头结点: 这个节点是为了便于管理链表的节点,这个节点并不保存数据;虽然和其他节点一样,但... 阅读全文
摘要:
对于C语言中,一般的理解是对于空格,我们可以随意输入,因为空格没啥大意义,但是事实上并非如此。1、'\'空格的问题 '\' 字符可用于一些字符进行转移,当然也包括了 newline(enter),被转义的 newline 在逻辑上是对上一行的延续,可以用于连接长长的字符串。但是,如果在:\ente... 阅读全文
摘要:
C语言的类型转换,一个是强制类型进行转换,而在这里要介绍的是自动的数据类型的转换,自动的数据类型转换很多时候是发生在多种数据类型混合使用的时候就会进行类型的转换,这样就会带来不能控制的结果,所以必须进行学习。1、算术进行类型转换 在进行算术运算(加减乘除、相除、大小)的时候,当数据类型不一致的时候... 阅读全文
摘要:
1、状态机 简称为FSM(finite state machine),也就是有限个状态机,机器(程序)在接受到外部的信息输入之后,考虑到当前的状态和用户输入的信息从而去执行相应的动作(输出)。 状态机的分类:MOORE、MEALY: MOORE: 执行的动作(输出)之和当前状态有关和输入无关。 MEALY: ... 阅读全文