C++ 关于for循环(初始化、条件、更新)的问题
代码:C++ 关于for循环(初始化、条件、更新)的问题,c++,C++,代码: #include <iostream> using namespace std; int main() { char* a = new char[5]; for (char i = 0; i < 5; i++) { a[i] = 'x'; } for (char i = 0; i < 5; i++) { cout << a[i] << endl; } } #包括
#include <iostream>
using namespace std;
int main() {
char* a = new char[5];
for (char i = 0; i < 5; i++) {
a[i] = 'x';
}
for (char i = 0; i < 5; i++) {
cout << a[i] << endl;
}
}
#包括
使用名称空间std;
int main(){
char*a=新字符[5];
对于(字符i=0;i<5;i++){
a[i]=“x”;
}
对于(字符i=0;i<5;i++){
现代硬件平台有8位、16位、32位和64位整数。8位整数就是char
s。这就是char
的全部。它只是一个单字节,一个8位整数
只要使用的实际整数值在char
的范围内,您就可以在任何地方使用char
。有符号8位字符的值范围为-128到127。在这里,显示的代码只需要从0到5计数,因此char
计数器就可以正常工作。唯一的缺点是代码看起来有点c这让你很困惑。但是,除了这一点小小的困惑之外,它仍然可以正常工作
所有在int
上工作的操作符也将在字符上工作,包括++
和--
,以及*
、/
、%
、+
和-
。唯一的要求是基础值适合字符的数值范围。 char
是一个字节长的正负值(-128到127)。它存储一个数字,与任何其他变量类型完全相同。因此,您可以使用基本类型可用的所有运算符。区别在于,当您使用printf
函数时,必须将其指示为c
,以获取其字符表示形式,如果您使用整数说明符,如i
或d
,您将获取存储在其中的数字。所以
在代码char i=0
中,编译器将启动值为零的变量。该值在ASCII表中表示为空字符
是的,您可以使用++运算符,以及任何其他与基元类型一起工作的运算符(也可以使用数学运算符和微积分)
当使用char类型来处理字符串时,P>更有效,所以编译器不需要转换任何东西。即使我是一个字符,我也可以使用这个i++吗?是的。字符可能是8位的有符号或无符号,但在实现中可能更大。在C和C++ <代码> char < /C>中至少表示8位的整数。“我认为for循环条件应该是int I"?循环条件可以是可转换为bool
的任何东西。在您的情况下,i<5
是循环条件,而不是char i=0
。较小类型和较大类型之间的比较不是问题,因为类型转换是自动添加的。无论如何,最好使用size\u t
,而不是e> int
为避免不必要的转换:用于(大小i=0;i<5;++i)
。