(来自c++primer第五版练习3.7)数组的下标居然可以是字符型吗?

#include<iostream>
#include<string>
#include<cmath>
#include<cctype>
using namespace std;
// 3.7这个题目为个人理解就是所谓控制循环变量的类型设为char 
int main(){
	string c="hello world!!!!";
		for(char a;a<=c.size();a++){
			cout<<c[a];// 简直神奇,我都没想到这个下标换成字符型的也可以输出 
		}
return 0;
}

 

可以。 char, int 都是一样的。 请看: https://blog.csdn.net/zhjqxy/article/details/52975140

不是吧,3.7的要求是把范围for语句里的auto改成char,你用的不是范围for语句啊。
正确的是这个

for (char &c : s)
    c = 'X';