signed 是有符号的,也就是有负值。unsigned是无符号的,没有负值。在某些情况下,for循环只能用有符号的。其实我觉得for循环中的循环变量最好用有符号数 char不够用用int,再不够用long。除非必要,最好不要用unsigned的变量。给大家一个有趣的程序玩玩(是在VS2017上写的,要换其它编译软件,只要把pch.h改成相应的头文件就行,一般好像是studio.h):
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
// unsigned char i;//i换成unsigned char型就会变成死循环
signed char i;
for (i = 7; i > 0; i--) {
cout << "i=" <<int(i) << endl;
i--;
}