C++Primer读书笔记(一)
来源:互联网 发布:找工作软件那个最靠谱 编辑:程序博客网 时间:2024/04/29 01:17
第四章 数组与指针
指针和引用的比较:使用引用和指针都可间接的访问另一个值,但它们之间有两个重要的区别,第一引用总是指向某一个对象:定义引用时没有初始化是错误的。第二、赋值行为的差异:给引用赋值是修改的是该引用所关联的对象的值,而不是使引用与另外一个对象关联。引用一经初始化,就始终指向同一个特定的对象。举例:
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
- C++Primer读书笔记(一)
- C++primer读书笔记(一)
- C++Primer读书笔记(一)
- 《C++primer》读书笔记一
- 《C++Primer》读书笔记(一)开始
- 《C++primer》读书笔记一 类
- C++ primer 读书笔记(一)
- c++ primer读书笔记(一)
- C++Primer读书笔记(三)
- C++Primer读书笔记(四)
- C++Primer读书笔记(五)
- C++Primer读书笔记(六)
- C++Primer读书笔记(七)
- C++Primer读书笔记(八)
- C++Primer读书笔记(九)
- C++Primer读书笔记(十)
- C++Primer读书笔记(十一)
- C++Primer读书笔记(十二)
- POJ1426 BFS
- 值得拥有的Python教程:http://www.cnpythoner.com/pythonshop.html
- 嵌入式设计应具备的基本技能【转载】
- Java TCP的封装
- XMPP——Smack[4]状态,心情,头像更改
- C++Primer读书笔记(一)
- 解题笔记(6)——在二元树中找出和为某一值的所有路径(树)
- 拼图游戏——java版
- java 中的vector 和 引用的概念
- C++Primer读书笔记(二)
- XMPP——Smack[5]文件传输及离线消息的获取
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
- 实现一个容器,每次调用select()方法时,随机返回一个元素
- linux fedora安装svn笔记