C++快速温习笔记(基本)[1]



C++完全支持面向对象的程序设计,支持其四大特性:

封装

数据隐藏

继承

多态

 

C++保留字:

asm

else

new

this

auto

enum

operator

throw

bool

explicit

private

true

break

export

protected

try

case

extern

public

typedef

catch

false

register

typeid

char

float

reinterpret_cast

typename

class

for

return

union

const

friend

short

unsigned

const_cast

goto

signed

using

continue

if

sizeof

virtual

default

inline

static

void

delete

int

static_cast

volatile

do

long

struct

wchar_t

double

mutable

switch

while

dynamic_cast

namespace

template

 

 

注释的写法:

//单行注释

/*

 多行注释

 多行注释

 */

 

基本数据类型:

类型

关键字

布尔型

bool

字符型

char

整型

int

浮点型

float

双浮点型

double

无类型

void

宽字符型

wchar_t

 

 

基本类型修饰符:

signed

unsigned

short

long

 

使用修饰符修饰的变量占用的内存和取值范围:

类型

范围

char

1 个字节

-128 127 或者 0 255

unsigned char

1 个字节

0 255

signed char

1 个字节

-128 127

int

4 个字节

-2147483648 2147483647

unsigned int

4 个字节

0 4294967295

signed int

4 个字节

-2147483648 2147483647

short int

2 个字节

-32768 32767

unsigned short int

2 个字节

0 65,535

signed short int

2 个字节

-32768 32767

long int

8 个字节

-9,223,372,036,854,775,808 9,223,372,036,854,775,807

signed long int

8 个字节

-9,223,372,036,854,775,808 9,223,372,036,854,775,807

unsigned long int

8 个字节

0 to 18,446,744,073,709,551,615

float

4 个字节

+/- 3.4e +/- 38 (~7 个数字)

double

8 个字节

+/- 1.7e +/- 308 (~15 个数字)

long double

8 个字节

+/- 1.7e +/- 308 (~15 个数字)

wchar_t

2 4 个字节

1 个宽字符

(变量的大小会根据不同计算机操作系统而有差别)

 

定义别名:

typedeftype new_type_name

e.g.

typedef int myInt

myInt a = 10;

 

定义枚举类型:

enum { } ;

e.g.

enum color { red,green, blue, black } c;

c = blue;

cout << c<< endl;

enum career {teacher, doctor = 2, police = 5, driver } a;

c = teacher;

// teacher = 0(default start number), doctor = 2, police = 5, driver = 6(because police = 5)

 

左值(Lvalues)和右值(Rvalues)

左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。

右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。

 

常量值:

85         // 十进制

0213       // 八进制

0x4b       // 十六进制

30         // 整数

30u        // 无符号整数

30l        // 长整数

30ul       // 无符号长整数

3.14159

314159E-5L 

true

false

"abc"

字符串换行(使用"\"):

"hello \

 world"

 

转义字符:

类型

\\

\字符

\'

'字符

\"

"字符

\?

?字符

\a

alert sound

\b

backspace

\f

换页符

\n

换行符

\r

回车

\t

水平制表符

\v

垂直制表符

\ooo

一至三位八进制数

\xhh…

一个或多个数字的十六进制数

 

常量定义:

使用#define进行常量的预编译(在编译阶段)

使用const关键字定义

e.g.

#define LENGTH 10

#define WIDTH 5

const int name ="Han"

 

存储类关键字:

auto:所有局部变量默认的存储类

register:用于定义存储在寄存器中而不是RAM中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的'&'运算符(因为它没有内存位置)。寄存器只用于需要快速访问的变量,比如计数器。还应注意的是,定义'register'并不意味着变量将被存储在寄存器中,它意味着变量可能存储在寄存器中,这取决于硬件和实现的限制。

static:指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用static修饰局部变量可以在函数调用之间保持局部变量的值。static修饰符也可以应用于全局变量。当static修饰全局变量时,会使变量的作用域限制在声明它的文件内。

extern:用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当您使用'extern'时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。当您有多个文件且定义了一个可以在其他文件中使用的全局变量或函数时,可以在其他文件中使用extern 来得到已定义的变量或函数的引用。可以这么理解,extern 是用来在另一个文件中声明一个全局变量或函数。

mutable:说明符仅适用于类的对象。它允许对象的成员替代常量。也就是说,mutable成员可以通过 const 成员函数修改。

 

算术运算符:

+    -   *    /    %   ++    --

关系运算符:

==    !=   >    <    >=   <=

逻辑运算符:

&&    ||   !

位运算符:

&    |   ^    ~    <<   >>

运算符

描述

实例

&

如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。

(A & B) 将得到 12,即为 0000 1100

|

如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。

(A | B) 将得到 61,即为 0011 1101

^

如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。

(A ^ B) 将得到 49,即为 0011 0001

~

二进制补码运算符是一元运算符,具有"翻转"位效果,即0变成11变成0

(~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。

<<

二进制左移运算符。左操作数的值向左移动右操作数指定的位数。

A << 2 将得到 240,即为 1111 0000

>>

二进制右移运算符。左操作数的值向右移动右操作数指定的位数。

A >> 2 将得到 15,即为 0000 1111

赋值运算符:

=    +=   -=    *=    /=   %=    <<=    >>=   &=    ^=    |=

其他运算符:

运算符

描述

sizeof

sizeof 运算符返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。

Condition ? X : Y

条件运算符。如果 Condition 为真 ? 则值为 X : 否则值为 Y

,

逗号运算符会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值。

.(点)和 ->(箭头)

成员运算符用于引用类、结构和共用体的成员。

Cast

强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2

&

指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。

*

指针运算符 * 指向一个变量。例如,*var; 将指向变量 var

 

支持的循环类型:

while    for   do…while    嵌套循环

循环控制语句:

break    continue   goto

条件判断语句:

if    if…else…   嵌套if    switch    嵌套switch

 

函数定义:

return_type function_name( parameter A, parameter B =default_value, parameter C ...... )

{

   // body of the function

}

传参方式:

传递类型

描述

值传递

该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。

指针传递

该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

引用传递

该方法把参数的引用复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

你可能感兴趣的:(C++,Programming,程序设计,C++,程序设计,programming,语法)