Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 关于for循环(初始化、条件、更新)的问题_C++ - Fatal编程技术网

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)