最近两天打开本科学校的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(数据类型, 控制语句, 数组)的更多相关文章

  1. JavaScript 基础 (变量声明, 数据类型, 控制语句)

    创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...

  2. ndk学习之C语言基础复习----基本数据类型、数组

    关于NDK这个分类在N年前就已经创建了,但是一直木有系统的记录其学习过程,当然也没真正学会NDK的技术真谛,所以一直也是自己的一个遗憾,而如今对于Android程序员的要求也是越来越高,对于NDK也是 ...

  3. Java基础回顾_第一部分

    Java基础回顾 基本数据类型 数值类型 什么是字节? 位(bit):是计算机中数据的最小单位 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B来表示 1 B = 8 bit 字符: ...

  4. 【Spring学习】【Java基础回顾-数据类型】

    Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...

  5. day 50 js-part1基础语法,数据类型及用法,流程控制语句,循环

    js基本概念: JavaScript 是世界上最流行的脚本语言. JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaScript ...

  6. 1、java基础回顾与加强

    一.    基础回顾 1   集合 1.1  集合的类型与各自的特性 ---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList:    数组实现, ...

  7. JavaScript基础回顾一(类型、值和变量)

    请看代码并思考输出结果 var scope = 'global'; function f(){ console.log(scope); var scope = 'local'; console.log ...

  8. python高级(1)—— 基础回顾1

    Python基础回顾 认识变量 在学习了之前的Python零基础入门系列[洗礼灵魂,修炼Python](说明一下,这个系列现在回过来再来看这个名字确实好土啊,然后有些知识点感觉还不太精准,后期看如果有 ...

  9. 055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念

    055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念 本文知识点:数组的概念 数组的声明创建.初始化 在学习数组的声明创建.初始化前,我们可以和之 ...

随机推荐

  1. Oracle_Q&A_04

    2014-12-19作业 [JSU]LJDragon's Oracle course tasks In the first semester, junior year --1.在管理员权限下创建一个新 ...

  2. 解决从github下载web的源代码部署到eclipse的问题

    2015年6月2日 天气晴 github官网:https://github.com/ 以下以pdf.js作为案例说明:https://github.com/mozilla/pdf.js 1).点击案例 ...

  3. 动态从数据库读取菜单(ASP.NET版)

    这几天一直打算做个从数据读取导航菜单的效果,以前做的时候都是写死的(太死了),好了话不多说,先看效果! 我是个小菜,高手请不要喷!我在网上查了好久,说用menu控件,但是我用了不太好!最后我决定用re ...

  4. OD: Exploit Me - Inject Instruction

    修改之前的代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<windo ...

  5. vb.net转换为C#方法

    第一个方法是上面有人说过的,用VB.NET TO C#的在线转换工具.既然你说不好用,那么可以这样:你把VB.NET代码编译了,然后用工具反编译(IL spy,reflector等)成C#代码.

  6. ClustrMaps——访问者位置

    ClustrMaps——访问者位置: http://www3.clustrmaps.com/zh/counter/maps.php?url=http://www.cnblogs.com/JuneZha ...

  7. window对象BOM

    BOM的和新对象是window,他表示流浪器的一个实例,作为一个Global对象,有权访问parseInt()等方法 在全局作用域声明的变量,函数都有钱访问 ; function sayName () ...

  8. const的重载

    class A { private: int a; public: A(int x) :a(x){}//构造函数并不能重载 void display(){ cout << "no ...

  9. uva 10994 - Simple Addition

    //组合数学 //计算sum{i从右往左数的第一个非0数字,p<=i<=q}. #include <cstdio> typedef long long ll; ll sum(l ...

  10. sql语句各种九九乘法表

    下面用while 和 if 条件写的SQL语句的四种九九乘法表 --9x9 左下角 ) BEGIN SET @S='' WHILE @J<=@I BEGIN )))))) END PRINT @ ...