C++Primer读书笔记(一)

第四章 数组与指针
     指针和引用的比较:
              使用引用和指针都可间接的访问另一个值,但它们之间有两个重要的区别,第一引用总是指向某一个对象:定义引用时没有初始化是错误的。第二、赋值行为的差异:给引用赋值是修改的是该引用所关联的对象的值,而不是使引用与另外一个对象关联。引用一经初始化,就始终指向同一个特定的对象。举例:
int ival = 1024, ival2 = 2048;
int *pi = &ival, *pi2 = &ival2;
pi = pi2;
赋值结束后,pi指向的ival对象的值保持不变,赋值结束操作修改了pi指针的值,使其指向另外一个不同的对象。
int &ri = ival, &ri2 = ival2;
ri = ri2
这个赋值操作改变了ri引用的值,而非引用本身。
    
    C风格字符串:
               所有C风格字符串必须以字符串结束符null作为结束,举例               
      char str[] = {'a','b','c','d'};  //没有以null作为结束
      cout<<strlen(str)<<endl; //所得结果为不可预料的值
        C风格字符串与C++的标准库类型string的比较
//C-Style Character string implementation
const char *pc = "a very long literal string";
const size_t len = strlen(pc);
//performance test an string allocation and copy
for (size_t ix = 0; ix != 1000000; ++ix)
{
char *pc2 = new char[len+1];   //allocation the space
strcpy(pc2, pc);
if (strcmp(pc2, pc))    
{
;                      //do nothing
}
delete [] pc2;       //free the memory
}


       //C++ STRING
string str("a very long literal string");
for (size_t ix = 0; ix != 1000000; ++ix)
{
string str2 = str;    //do the copy
if (str != str2)
{
;                  //do nothing
}
}                        //str2 is automatically freed
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值