C++基础回顾1(数据类型, 控制语句, 数组)
最近两天打开本科学校的C++教材,快速回顾了一下C++方面的内容。虽然书本内容比较基础,但是还是有些知识点值得自己强化记忆。分几篇文章,加上自己的理解记录如下。
先回顾面向过程的部分。
C++数据类型
1、数据类型修饰符:
1.1 long不仅可以修饰int,还可以修饰double;而short只能修饰int;
1.2 "只有修饰符"的数据类型都是"修饰符 int"的简写,比如unsigned long是unsigned long int的简写。
2、整型常量:八进制数以0开头,十六进制数以0x或者0X开头。
3、浮点型常量:1.23*10^4在C++中可以表示为1.23E4或者1.23e4。
4、转义字符:
4.1 若转义字符后边跟的是一个整型常量,则必须是一个以0为前缀的八进制数(注意前缀0可以省略),或者以x为前缀的十六进制数(注意是x而不是0x);
4.2 若转义字符后面跟有字符时,其字符必须小写,大写只能表示其自身。如'\E'认为就是'E'。
5、变量:
5.1 变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。
5.2 C++要求变量作强制定义的目的:
5.2.1 凡未被事先定义的,不作为变量名,保证程序中变量名使用的正确;
5.2.2 每个变量被指定为一个确定类型,在编译时就能为其分配相应的存储单元;
5.2.3 在编译时就能根据变量类型检查其进行的运算是否合法。(如:a, b为实型变量,则不允许进行求余运算)
5.3 #define定义的符号常量和const定义的常变量的区别:
符号常量只是用一个符号代替一个字符序列,在编译预处理时把所有符号常量替换为指定的字符序列,它没有类型,在内存中并不存在以符号常量命名的存储单元;
而常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元。
5.4 C++中一般使用常变量。因为使用const语句定义常变量带有数据类型,便于系统进行类型检查,同时它还具有计算初值表达式的功能。
6、在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。
6.1 如a || b || c,只要a为true就不必判断b和c;
6.2 如int a = 1, b = 2, c = 3, d = 4, m =5, n =6; bool x; x = (m = a > b) && (n = c > d); 执行完之后n的值不是0,而仍然是6。
7、逗号运算符:
7.1 int a; (a = 3 * 5, a * 4), a + 5; 执行完之后,a为15,第二条语句整个表达式的值为20;
7.2 逗号运算符是所有运算符中级别最低的。
程序控制语句
1、if...else...语句中,else总是与离它最近的上一个if配对。
2、switch...case...语句中,case后跟的是常量表达式(不能是普通变量),常量表达式的值必须是整型、字符型或枚举类型。
3、for(statment1; statement2; statement3),如果for循环内有执行到continue语句,则跳到执行statement3,并进行下一轮循环。
数组和结构体
1、字符串处理:
1.1 gets(str)的作用是从终端输入一个字符串到字符数组,并且得到一个函数值,该函数值是字符数组的起始地址。(本节下述str开头的均为char *类型)
拓展:cin.get(str, size),每次读取一整行,并把enter键生成的换行符留在输入队列,通常这样组合使用:cin.get(str, size).get();
cin.getline(str, size),每次读取一整行,并把enter键生成的换行符抛弃;用法与gets(str)几乎一样,只是多了一个size参数;
getline(cin, string),每次读取一整行,并且为string类型;
getchar(ch),接受一个字符。
1.2 puts(str)的作用是将一个字符串(以'\0'结束的字符序列)输出到终端。
1.3 strcat(strDest, strSource)是将字符串strSource连接到字符串strDest后面,返回为字符数组strDest的地址。
1.4 strcpy(strDest, strSource)是将字符串strSource复制到字符数组strDest中去,返回为字符数组strDest的地址。
1.5 strcmp(str1, str2)比较str1和str2,若str1 == str2,返回0;若str1 > str2,返回一个正整数;若str1 < str2,返回一个负整数。
1.6 strlen(str)返回字符串的实际长度,不包括 '\0' 在内。
cin.get()
每次读取一整行并把由
Enter
键生成的换行符留在输入队列中
C++基础回顾1(数据类型, 控制语句, 数组)的更多相关文章
- JavaScript 基础  (变量声明, 数据类型, 控制语句)
		创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ... 
- ndk学习之C语言基础复习----基本数据类型、数组
		关于NDK这个分类在N年前就已经创建了,但是一直木有系统的记录其学习过程,当然也没真正学会NDK的技术真谛,所以一直也是自己的一个遗憾,而如今对于Android程序员的要求也是越来越高,对于NDK也是 ... 
- Java基础回顾_第一部分
		Java基础回顾 基本数据类型 数值类型 什么是字节? 位(bit):是计算机中数据的最小单位 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B来表示 1 B = 8 bit 字符: ... 
- 【Spring学习】【Java基础回顾-数据类型】
		Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ... 
- day 50   js-part1基础语法,数据类型及用法,流程控制语句,循环
		js基本概念: JavaScript 是世界上最流行的脚本语言. JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaScript ... 
- 1、java基础回顾与加强
		一. 基础回顾 1 集合 1.1 集合的类型与各自的特性 ---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, ... 
- JavaScript基础回顾一(类型、值和变量)
		请看代码并思考输出结果 var scope = 'global'; function f(){ console.log(scope); var scope = 'local'; console.log ... 
- python高级(1)—— 基础回顾1
		Python基础回顾 认识变量 在学习了之前的Python零基础入门系列[洗礼灵魂,修炼Python](说明一下,这个系列现在回过来再来看这个名字确实好土啊,然后有些知识点感觉还不太精准,后期看如果有 ... 
- 055 01 Android 零基础入门  01 Java基础语法 06 Java一维数组 02 数组的概念
		055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念 本文知识点:数组的概念 数组的声明创建.初始化 在学习数组的声明创建.初始化前,我们可以和之 ... 
随机推荐
- Codeforces 328A-IQ Test(数列)
			A. IQ Test time limit per test 1 second memory limit per test 256 megabytes input standard input out ... 
- Dynamics CRM记录页面上隐藏子网格“+”标识
			前段时间微软发布了Dynamics 365,这是Dynamics产品的又一次大的变动,期待新的版本能够更好的满足客户的需求,同时提供更多的可定制化的内容. 近期做Dynamics CRM项目遇到很多审 ... 
- static——第一次执行与它以后执行时结果不一样
			void generate_initializer(char* string); int _tmain(int argc, _TCHAR* argv[]) { "}; ; i < ; ... 
- Cortex-mo指令集
			处理器使用的是ARMv6-M Thumb指令集,包括大量的32位的使用Thumb-2技术的指令.表7-22列出了Cortex-M0指令和它们的周期数.周期计数以零等待状态的系统为基准. 表7-22 ... 
- lnmp架构下php安全配置分享
			目录[-] 1. 使用open_basedir限制虚拟主机跨目录访问 2. 禁用不安全PHP函数 3. 关注软件安全资讯 4. php用户只读 5. 关闭php错误日志 6. php上传分离 7. 关 ... 
- html 页面实现指定位置的跳转
			1.同页面跳转到相应位置 <a href="#id1">跳转到词条1</a> <a href="#id2">跳转到词条2&l ... 
- SQL SERVER 分页方法
			最近项目中需要在SQL SERVER中进行分页,需要编写分页查询语句.之前也写过一些关于分页查询的语句,但是性能不敢恭维.于是在业务时间,在微软社区Bing了一篇老外写的关于SQL SERVER分页的 ... 
- (五)JS学习笔记 - JQuery缓存机制
			历史背景 开发中常常因为方便,把状态标志都写到dom节点中,也就是HTMLElement,缺点: 循环引用 直接暴露数据,安全性? 增加一堆的自定义属性标签,对浏览器来说是没意义的 取数据的时候要对H ... 
- JavaWeb学习笔记之Servlet(一)
			1. 引子: 当我们开始进入JavaWeb开发的学习时,我们就必须要和Servlet和HTTP这两个词进行打交道了,尤其是Servlet.即使到了后面使用JSP (我们知道JSP其本身就是一个Serv ... 
- 设置cas server使用http非安全协议
			目录 1.tomcat添加https安全协议 2.下载cas server端部署到tomcat上 3.CAS服务器深入配置(连接MYSQL) 4.Apache Shiro 集成Cas作为cas cli ... 
