一、for(auto &i:s)和for(auto i:s)区别
代码1:
#include<iostream>
#include<string>
using namespace std;
string s = "hello";
for (auto &i : s ) //i是个引用 i到底引用的是什么?
i = toupper(i); //改变成大写,影响s的值
cout<<s<<endl; //s的值是 HELLO
代码2:
#include<iostream>
#include<string>
using namespace std;
string s = "hello";
for (auto i : s ) //书上说i 是char类型,那s[n]呢?
i = toupper(i); //改变成大写,不影响s的值
cout<<s<<endl; //s的值是 hello
二、auto 、static
auto 的对应类型不是使用 new 出来的变量,也不是static变量
auto 变量在函数结束时即释放了,再次调用这个函数时,又重新定义了一个新的变量。
static 变量是程序结束的时候才释放对象的,但它不需要手动释放。
static 如果在一个函数内申明,这每次进入这个函数时,还是使用第一次声明的变量,并且还保存的上次使用的值。
static 变量如果在结构和类中使用,这结构或类定义的一切对象,都将共享唯一 static 变量。
本文详细解析了C++中for循环的两种不同语法形式:使用引用和不使用引用的区别,以及auto和static变量的作用域和生命周期。通过具体代码示例,展示了如何改变字符串内容以及变量在函数调用中的行为。
446

被折叠的 条评论
为什么被折叠?



