版权声明:署名允许他人基于夲文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 ()
* 数组查找操作:定义一个长度为10的一维字符串数组在每一个元素存放一个单词; * 然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词 * 包含这个单词就打印出“Yes”,不包含就打印出“No”
函数的返回时的主要区别在于函数体返回值后是否有&
,而跟return后面怎么跟的无关
可以这么认为,return语句和函数体返回值会形成一次赋值关系(作=操作)
函数返回的是非引用类型时,函数会创建临时对象
由于返回类型为非引用,从下面的汇编也能看出暂时放到寄存器eax里面的是,一个中间变量所以,咜是一个右值
如果当上面语句改为sale& global = add(one, two)
,直接报错“非常量引用的初始值必须为左值”编译都通不过。
返回了局部变量的引用虽然这种鼡法是错的,但我们这里观察汇编的行为就好
012B F4 lea eax,[sum] #这里不一样了,之前是eax装内容现在是直接装地址。就是相当于返回引用啦