复习Primer、 2

可紊 提交于 2019-12-15 10:27:17

缓冲区溢出
对一些容器(如vector、string、数组等)试图通过一个越界的索引访问一个容器中内容

char*型和字符串字面值

char ch[11]="hello world"   //错误,后面还有个空字符作为结束 ‘/0’
char *ch="hello world" // 与上面一个,后面也有个空字符
//其实本质上 char *ch 与char ch[]一样,数组被默认为指针
//例如:
const char c1[]="deng yao hui";
const char c2[]="deng yao hui is a good student";
if(c1<c2)   //错误!!试图比较两个不相关的地址
  return OK;

左值和右值
左值代表一个对象或者函数,右值代表的是数,例子:

int arr[]={1,2,3,4,5,6};  
//此时,arr为左值,运算符=号运算的是左值
//{1,2,3...}是右值,是 值
int *p_arr=arr;
//此时的p_arr是左值,arr代表的是arr的地址,是右值
int first_arr=*p
//*p是右值,解引用符*作用于左值上,返回的是一个右值*p

就是这么拗口,哈哈!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!