本文总结了C++中一些最基本的概念
1.C和C++的区别
C语言:面向过程,结构化和模块化
C++面向对象程序设计特点:自下至上,从局部开始。
面向对象程序设计主要特征:
(1)封装性:类
(2)继承性:派生类、基类
(3)多态性:函数重载、模板、虚函数
2.变量与数据类型
2.1常量
const常量:const <类型名> <常量名>=<表达式>
宏常量:# define <宏名> <常量>
两者的区别:
(1)const有数据类型,而宏常量没有数据类型。
(2)编译器会对const进行安全检查;而后者只进行替换,没有进行检查,可能会有意想不到的结果。
(3)有些集成化调试工具可以对const进行调试,但不能对宏常量进行调试。
2.2变量
变量:[<存储类>] <类型名或类型定义> <变量名表>
存储类:(可省略,默认为auto)
auto:一次性存储,可被覆盖
register:放在通用寄存器
extern:所有函数和程序段中都可用
static:固定内存地址,在整个程序运行期间都有效
命名规则:由字母或下划线开头,后面可有数字
匈牙利命名法:在名字前面加相应的前缀
作用范围:
全局变量:不在任何一个内类、函数等中,在内存数据区不变
局部变量:在临时工作区中,以堆栈性质允许反复占用
一个程序将操作系统分配给其的内存块分为:
代码区:存放代码
全局数据区(静态区):存放全局数据和静态数据
堆区:由程序员分配和释放,存放动态分配的变量。
栈区:由编译器自动分配和释放,存放函数的参数值,局部变量的值等。
基本数据类型(长度以字节为单位)(32位编译器):
整型:int-4,short[int]-2
字符:char-1
浮点(实型):单精度float-4(即32位),双精度double-8,long double-10
布尔:bool-1
前面都可加上修饰符:
signed:有符号,unsigned:无符号
long:长型,short:短型
注意:
(1)可以修饰整型和字符型,只有long还能修饰double;
(2)存储空间:字节数跟机器字长有关;
(3)有无符号占用的字节数一样
3.运算符和表达式
3.1运算符
(1) 算术运算符:+ - * 、 % ++ --
++i:使用前i加1
i++:使用后i加1
(2) 赋值运算符:有=的
a<<=b:a左移b位赋给a
a<<1:a左移1位
1<<a:1左移a位,每左移1位就乘以2,所以结果是2^a
a>>=b:a右移b位赋给a
a^=b:ab逐位异或赋给a
a&=b以及a|=b同理
(3) 关系运算符:>,<,==,!=
(4) 逻辑运算符:! && ||
(5) 条件运算符:<>?<>:<>
(6) 逗号运算符
(7) 位运算符:&按位与、|按位或、^按位异或、>>右移位、<<左移位、~按位取反
(8) sizeof:所占用的字节数。不同计算机支持的数据类型长度是不一样的。
3.2表达式
关系,逻辑,条件,赋值,逗号(不赘述)
4.程序控制结构
顺序:表达式、输入输出、格式控制符
输入 cin>>a
输出 cout<<a<<endl
输入输出加入#include<iostream>和using namespace std;
选择:if、switch
循环:for、while、for…while
转向:
break:跳出循环,执行循环后面的语句
continue:跳出本次循环进行下一次循环
goto:无条件跳转到指定标号语句处
return::返回语句