所在的位置: c++ >> 就业前景 >> C++知识汇总(1)

C++知识汇总(1)

C++知识汇总(1)

1,左值指向一个内存单元右值内存单元的内容。所有的左值都可用作右值,但右值不是都可以作为左值。=MyInteger是错的.

2,intnum2=++num1,intnum2=num++。

使用后缀运算符,现将右值赋给左值,再将右值递增或递减。num2是num1的旧值。

使用前缀运算符,现将右值递增或递减,再将结果赋给左值。num2的值和num1的值相等。

在myInt++和++myInt中前缀后缀没有影响。是由于没有将原来的值赋给其他变量。

3,异或运算符“^“,有且只有一个操作符为true,结果才为true;

4,按位运算符:对操作数进行位运算。NOT(~)取反,OR()对相应位履行按位或运算,

AND()对相应位履行按位与运算。使用(^)对相应位履行按位异或运算。

按位与运算,两个比特序列对应位都为1,结果为1,否则均为0;

按位或运算,两个比特序列对应位都为0,结果为0,否则均为1;

按位异或运算,两个比特序列对应位不相等,结果为1,否则为0;

5,移位运算符将全部位序列向左或向右移动,是将数据乘以或除以2的n次方;

左移():=16*2的1次方=32;

右移():=16/2的2次方=4;

6,使用运算符sizeof肯定内存的占用量sizeof(variable)

7,continue跳到循环开头,重新评估循环条件。break跳出循环。

8,使用for(;;),do()……while(true),while(true)创建无穷循环。

9,调用自己的函数,递归函数

10,函数重载:名称和返回类型相同,参数不同.

11,简单函数使用内联函数。inline

12,(1)指针:存储地址的变量。使用援用运算符()获得变量的地址。

intage=30;

int*pInteger=age;

(2)使用消除援用运算符(*)访问指向的数据,消除援用运算符也叫间接运算符

pInteger的值是0xEFB34;

*pInteger的值是30;

(3)可以给*pInteger赋值,*pInteger=40;或age=40,更改age和*pInteger其中的一个都会影响另一个。

(4)sizeof(指针),32位系统为4字节,64位系统为8字节

13,使用new动态分配内存。使用delete进行释放。

对使用new[…]为一系列元素分配的内存,使用delete[]来进行释放。

Type*pointer=newType;

deletepointer;

int*myInt=newint[10]

delete[]myInt;

14,将指针递减或递减,将指针包括的地址值增加或减去它指向的数据类型的sizeof;

Type*pType=Address;

++pType,pType指向Address+sizeof(Type)

--pType,pType指向Address-sizeof(Type)

15,inthoursInDay=24

constint*pInteger=hoursInDay;//数据为常量,不能修改,但可以修改指针包括的地址,指针可以指向其他地方。pInteger=anotherHoursInDay

int*constpInteger=hoursInDay;//地址为常量,不能修改,但是可以修改指针指向的数据。*pInteger=30

constint*constpInteger=hoursInDay;//指针包括的地址和他指向的值都是常量。

16,数组变量是指向第一个元素的指针

intMyNumber[5];

int*pNumbers=MyNumbers;

pNumbers=MyNumber[0]

访问第二个元素,可以用MyNumber[1],也可以用指针*(pNumbers+1)

17,指针编程最好实践:

(1)务必初始化指针变量

(2)使用指针前,务必检查它是不是为NULL

(3)务必仅在指针有效时使用它。

(4)对new分配的内存,要使用delete释放。

18,使用new分配内存失败,将引发std::bad_alloc异常。另一种使用new(nothrow),返回NULL,不引发异常。

19,援用:变量的别名

intoriginal=30;

intref1=original;

intref2=original;

original和ref1和ref2都指向同一个地址。

如果函数接受非常大的对象,使用援用,可提高函数调用的效力,并使用const用于援用参数。









































哪家治疗白癜风的医院好
医院治疗白癜风费用



转载请注明:http://www.nydjfy.com/jyqj/689.html