表达式

1.自增,自减操作符

int i=0,j;
j=++i;//i=1,j=1
j=i++;//i=2,j=1

 前置操作返回的是加1后的值,,后置操作返回的是原值。要先保存操作数原来的值,以便返回未加1之前的值作为操作的结果。先加1,返回原值。

2.箭头操作符:为包含点操作符和解引用操作符的表达式一个同义词,用于获取类类型的成员

(*p).foo;
p->foo;

3.

t5_18:定义一个string指针的vector,输入内容,然后输出
       vector<string *> vec;
    string str;
    cout << "enter strings:" ;
    while (cin >> str) {
          string *pstr = new string; // 必须新分配一块地方
                     // string *pstr = &str;不对,指向同一空间啦
          *pstr = str; // 每个指针单独指向一块空间,赋值
        vec.push_back(pstr);
        if(vec.size()==4) cout <<"vec[1]:" << *vec[1] << endl;
    }
   
    for (vector<string *>::iterator it =vec.begin(); it != vec.end(); ++it) {
        cout <<**it << ", len: " << (**it).size()<< endl;
}
 

4.sizeof操作符:返回一个对象或者类型名的长度,返回的类型为size_t单位字节

sizeof (expr)

sizeof (type name) // 必须加括号

sizeof expr :  并没有计算表达式的值

Sales_item item, *p;

sizeof item;

sizeof *p; // 并没有解引用操作,  p指向一块没有意义 的地址

sizeof (Sales_item)

5.const对象的动态分配和回收:

const  int *pci=new  const int(1024);
delete  pci

6.强制类型转换:

一般形式
cast-name<type>(expression)

(1).dynamic_cast:支持运行时识别指针或者引用所指的对象。

(2).const_cast:转换掉表达式的const性质

(3).static_cast:编译器任何隐式执行的类型转换都可以用此来显示完成

(4).reinterpret_cast:为操作数的位模式提供较低层次的重新解释,依赖于机器,要阅读编译器细节

 

 

 

 

 

posted on 2014-06-10 22:28  vincent_SK  阅读(128)  评论(0编辑  收藏  举报