数组、指针、容器、迭代器的理解

6867阅读 0评论2012-05-20 glinuxi
分类:C/C++

    一、名词定义

二、定义及初始化

三、操作及代码

  四、指针和const限定符

        1、指向const对象的指针: 不允许用指针来修改其值;const 类型 * 变量名,const 限定的是该指针指向对象而不是指针本身,因此该指针变量不是必须初始化,如果需要的化可以修改他的值。

        eg : const int * ptr ; *ptr = 54; /*error ,*ptr must be const/

                const int ok=8; const int * ptr = &ok;

        批注:  :把一个const对象的地址赋值给一个普通的、非const对象的指针会导致编辑错误

                      :不能使用void *指针保存const对象的地址,而必须使用const void *指针保存。

                      :允许将非const对象的地址赋值给指向const对象的指针。不能使用指向const对象的指着修改基础需对象,然额如果该指针指向一个非const对象,可用其他方法修改其所指对象的值。

       2、const 指针--------本身不能修改;const指针在定义时必须初始化;类型 const * 变量名。

       3、指向const对象的const指针----------本身和指向的对象都无法修改。const 类型 const * 变量名

       4、指针和typedef

          typedef stringp *string ;

          const stringp cstr;

         其中stringp虽然是一个string 类型的指针,但是对于const的修饰来讲并不等价于

        const string * cstr ;因为在typedf后stringp已经是一个整体,所以cstr定义为指向string类型对象的const指针,这个定义等价于string * const cstr;

上一篇:分享 C++命名空间的解释
下一篇:虚拟地址转换成为物理地址