




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 编程入门基础知识总结编程入门基础知识总结 基本知识 程序 算法 数据结构 算法是对操作的描述 数据结构是对数据的描述 伪代码 pseudo code 程序一般包括 1 预处理命令 include 等 2 全局声明部分 3 函数 函数首部 声明 函数体 局部声明 执行部分 程序执行过程 源程序 编译成目标程序 obj 连接目标程序成可执行文件 类 数据成员 成员函数 命名空间 实际上就是一个由程序设计者命名的内存区域 程序员可以根据需要指定一些有名字的空 间域 把一些全局实体分别放在各个命名空间中 从而与其它全局实体分隔开 解决名字 冲突 防止全局命名空间污染 C 库的所有标识符 标准头文件中函数 类 对象 类模版 都是在 std 命名空间定义的 A 的 ASCII 码值 65 a 的 97 1 数据类型 基本类型 整型 浮点型 字符型 布尔型 构造类型 枚举 数组 结构体类型 struct 公用体 union 类类型 指针类型 引用类型 空类型 null int 4 unsigned int 4 short int 2 unsigned short int 2 long int 4 unsigned long int 4 精品文档 2欢迎下载 char 1 uchar 1 float 4 double 8 long double 8 无符号 不用保存符号位 故比有符号多了一位 有符号 数值用补码存放 无论正负 最高位为符号位 VC 中 long double 与 double 字节数相同 故 long double 是无用的 GCC 中 long double 则有 12 个字节 无负值的量可以定义为 unsigned int 如年龄 学号等 以增大存储范围 short int long int unsigned int 这些类型后面的 int 可以省略 整型表示 十进制 后面加 L 或 l 八进制 前面加 0 十六进制 前面加 0 x 浮点数表示 默认为双精度型 double 后面加 f 或 F 则为单精度 float 后面加 l 或 L 则为长精度型 long double 指数形式 数符 数字部分 指数部分 a 3 14e2 a 0 314e4 a 31 4e1 a 3140e 1 浮点数 不管是用小数形式还是指数形式表示 在内存中都是以指数形式表示的 且数字 部分必须小于 1 如 3 14159 在内存中表示为 314159 3 数字部分为 314159 是小于 1 的 字符型 字符型在内存中存储的是 ASCII 码 也是整型 故而可以把字符型赋给整型 精品文档 3欢迎下载 字符串后面 编译系统会加个 0 作为结束符 符号常量 用符号代表一个常量 如 define PI 3 14159 在编译时 系统会把符号常量替换成具体的值 2 变量 变量 程序运行期间 值可变的量 变量名 代表内存中的一个存储单元 在编译连接时由系统给每一个变量分配一个地址 标识符 标识实体名字的有效字符序列 字母 数字 下划线 常变量 定义变量时加上 const 运行期间值不可变 也即只读变量 区别 define 定义的符号常量与 const 定义的常变量 符号常量只是用一个符号代表一个常量 在编译时把所有符号常量替换为指定的值 它没 有类型 在内存中不存在以符号常量命名的存储单元 常变量具有变量的特征 具有类型 在内存中有以它命名的存储单元 与一般变量不同的 是 常变量代表的存储单元值不可变 强定义的好处 1 保证变量名使用的正确 不正确会在编译时报错 2 每个变量指定为一确定类型 在编译时就能为其分配存储单元 3 编译时即可检查变量进行的运算是否合法 3 运算符 二进制位运算 i 1 j 2 则 a i j 答案 4 赋值运算符 的优先级小于 运算符 精品文档 5欢迎下载 示例 int arr 6 7 8 9 10 sint ptr arr ptr 123 printf d d ptr ptr 解 ptr 123 相当于 ptr 123 ptr 故 arr 0 129 ptr 指向 arr 1 printf 函数从右向左压栈 运算顺序 ptr 输出结果 8 8 cout 也是自右向左压栈 逗号运算符 又称顺序求值运算符 a 3 4 a 5 则 a 答案 12 注意逗号运算符优先级最低 注 整个逗号表达式 的值为 60 a 3 4 12 12 5 60 x a 3 6 3 则 x 18 x a 3 6 a 则 x 3 3 内存存储 浮点数在内存里和整数存储方式不同 精品文档 6欢迎下载 float a 1 0f cout int a int int 十进制输出 输出 123 456 默认精度为 6 cout setprecision 9 a 十进制 输出 123 456789 精度为 9 cout setprecision 6 恢复默认精度 cout setioflags iOS fixed a 固定位数 123 456789 此时精度表示小数位 数 精度为默认的 6 6 getchar 和 putchar cout getchar 读入的实际是 ASCII 码 故输出为字符 ASCII 码 97 而非读入 的字符 cout c getchar 输出为字符 精品文档 9欢迎下载 while c getchar n 循环读入字符的控制 7 函数与模版 函数原型 不同具体形参的函数声明 如 float add float float 主要作用 根据函数原型 在程序编译阶段对调用函数的合法性进行全面检查 函数重载 同一函数名定义的多个函数 这些函数的参数个数 参数类型 参数顺序至少 有一项不同 一个函数不能既是重载函数 又是带默认参数的函数 函数模版 适用于函数个数相同 函数体相同 而只有类型不同的情况 cpp view plain copy 精品文档 10欢迎下载 01 include 02 using namespace std 03 template template 04 T max T a T b T c 05 06 if b a a b 07 if c a a c 08 return a 09 10 int main 11 12 int a 1 b 2 c 3 13 cout T a b c 14 float d 1 1 e 2 2 f 3 3 15 cout T d e f 16 变量作用域 变量有效范围 有四种 文件作用域 file scope 函数作用域 function scope 精品文档 11欢迎下载 块作用域 block scope 函数原型作用域 function prototype scope 递归函数 函数体中 直接或间接调用函数本身的函数 变量的存储类别 外部 局部 相对于函数而言 全局变量 也即外部变量 静态局部变量 static 自动变量 不加 static 的局部变量 寄存器变量 register 存放在 CPU 中 而非内存中 这样在使用时就省去了从内存中载 入寄存器的过程 但只是建议性的 优化编译系统自动识别使用频繁的变量 从而自动将 变量放入寄存器中 extern 声明的外部变量 即提前引用申明 表示该变量是将在下面定义的全局变量或在其它文件中定义 本文件中 不用 extern 引用该变量的外部文件用 extern 进行声明 static 声明的静态外部变量 只能被本文件使用 而不能被外部文件使用的全局变量 这样不同文件中的全局变量不会 相互干扰 为程序模块化 通用化提供方便 精品文档 12欢迎下载 注 全局变量也是静态存储的 内部函数与外部函数 内部函数 static 声明 文件内使用 外部函数 另一个文件里 extern 声明 表示是其它文件的函数 extern 可以省略 宏定义 define PI 3 14 定义符号常量 define Area a b a b 定义函数功能 下面当作函数来用 include iostream 区别 在系统目录寻找 找不到报错 在当前目录寻找 找不到报错 精品文档 13欢迎下载 字符数组 1 char str i am happy 数组长度为 11 而非 10 因为后面有一个 0 2 char str i a m h y 数组长度为 5 系统不会自动为其在后面加 0 因此 1 2 是不同的 输出字符数组 cout str string 类 字符数组是 C 中的处理方式 C 中用 string 类 include 字符串变量中不会存放 0 只存放字符串本身 故 string str hello 的长度为 5 要注意 字符串变量存储的实际是字符串的指针 4 个字节 sizeof string 4 精品文档 14欢迎下载 string name i am happy sizeof name 3 4 12 变量与指针 int p int 型指针变量 定义时的 只是表示指针类型 p 是指针变量 其值是变量 i 的地址 p 则是存储单元 int p p 与下面等价 都指向数组第一个元素 因为数组名本身就是表示数组的地 址 p a 精品文档 15欢迎下载 p 相当于 p 先得到 p 的值 p 再 移到下一个元素 p 则是使 p 的值 1 二维数组的指针表示 p i j 表示 a i j int p n p 为指向含 n 个元素的数组的指针 int p n 定义指针数组 P 函数指针 指向函数的指针 主要用作形参 int max int int int p int int p max 赋值 地址 p 1 2 调用 精品文档 16欢迎下载 引用 int a 10 int b 是对 a 的引用 引用传递 引用型变量作为函数形参 cpp view plain copy 01 值会改变 02 main 03 int i 5 j 6 04 swap i j 05 06 void swap int 09 temp a 10 a b 11 b temp 12 传递变量地址 形参是指针变量 实参是变量地址 这种虚实结合的方法仍然是 值传递 方式 只是实参的值是变量地址而已 cpp view plain copy 01 值会改变 02 main 03 04 int i 5 j 6 05 swap 精品文档 18欢迎下载 10 temp p1 11 p1 p2 12 p2 temp 13 结构体变量 struct 作函数参数时有三种形式 1 用结构体变量名作形参 这时形参要开辟内存单元 实参中全部内容通过值传递方式一一传递给形参 时空开销大 效率低 2 用指向结构体变量的指针作形参 只有四个字节 void printed student p cout num 精品文档 19欢迎下载 3 用结构体变量的引用变量作形参 Student stu print stu void print Student new delete 动态内存分配 new 类型 初值 返回地址 分配失败返回 NULL 精品文档 20欢迎下载 float f new float 3 14 int i new int 6 int k new int 5 4 数组 delete 变量 delete f delete i 数组 delete k Enum 枚举类型 声明枚举类型 enum weekday sun mon tue wed thu fri sat 定义枚举变量 weekday workday week end 变量赋值 workday mon 或 workday weekday 2 枚举常量对应值从 0 开始 0 1 2 3 typedef 声明新类型 typedef int INTEGER 相当于为 int 起了个别名 下面程序中就可以直接用 INTEGER 作 int 用了 主要为了方便系统移植 如 long int 在 VC 中 4 个字节 在 GCC 中占 8 个字节 直接用 int 的话可能会溢出 用 INTEGER 就不用担心了 只要把 ypedef int INTEGER 声明语句 一改就行 运算符重载 方法是定义一个重载运算符的函数 在需要执行被重载的运算符时 系统就自动调用该函 精品文档 21欢迎下载 数 以实现响应运算 即运算符重载是通过定义函数实现的 运算符重载实际上是函数重 载 格式 函数类型 operator 运算符名称 形参表列 对运算符的重载处理 例如 将 用于 Complex 类 复数 的加法运算 函数原型如下 Complex operator Complex 注 operator 是关键字 operator 就是函数名 可以描述为 函数 operator 重载 了运算符 整数加可以想象为调用如下函数 int operator int a int b return a b cpp view plain copy 01 include 02 using namespace std 精品文档 22欢迎下载 03 class Complex 04 05 public 06 Complex real 0 imag 0 07 Complex double r double r real r imag i 08 Complex operator Complex 声明重载运算符的函数 09 void display 10 private 11 double rea 12 double imag 13 14 Complex Complex operator Complex 17 c real real c2 real 18 c imag imag c2 imag 19 return c 20 21 void Complex display 22 23 cout real imag 24 25 int main 26 27 Compl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院手术护理质量改进年度报告
- 小学科学热气球实验教案设计
- 企业120工作制度标准模板
- 物资采购程序细则
- 海上应急预案制定
- 幼儿园家长沟通及反馈管理策略
- 智慧医疗系统功能架构设计
- 2024一级建造师练习题含完整答案详解【各地真题】
- 旅游行业法规合规培训教材
- 航行海域避碰规定
- 2025湖南益阳安化县事业单位招聘工作人员61人考试参考试题及答案解析
- 7 呼风唤雨的世纪 课件
- 电瓶托盘堆垛车安全培训课件
- GB/T 5796.3-2022梯形螺纹第3部分:基本尺寸
- 第七章-辐射防护分析课件
- 研究生英语阅读综合教程reading more
- 比较思想政治教育学-课件
- 眼科学教学课件:眼睑病
- ZXONE8700技术规范书
- 微观经济学生产与成本理论
- 环境监测第2章(2)——水和废水监测ppt课件
评论
0/150
提交评论