缓冲区溢出
对一些容器(如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
就是这么拗口,哈哈!
来源:CSDN
作者:dyh、Automation
链接:https://blog.csdn.net/weixin_43527115/article/details/103543153