gpt4 book ai didi

c++ - 硬件级别的 'for loop' 中发生了什么?内存是自动分配的吗? (C++)

转载 作者:行者123 更新时间:2023-11-30 01:14:11 24 4
gpt4 key购买 nike

<分区>

我这里有一些代码可以反转字符数组:

#include <iostream>
#include <string>

using namespace std;

char s[50];

void reverseChar(char * s)
{
for (int i=0; i<strlen(s)/2; ++i)
{
char temp = s[i];
s[i] = s[strlen(s)-i-1];
s[strlen(s)-i-1] = temp;
}
}

int main() {
cout << "Hello, this program reverses words." << endl << endl;
cout << "Enter in a word, no spaces please:" << endl;
cin.getline(s, 50);
cout << "This is the word, it has now been reversed:" << endl;
reverseChar(s);
cout << s;
return 0;
}

在 for 循环中,有人可以解释一下硬件级别发生了什么。我理解 'temp' 被分配给一个字节,它被分配给 s[i] 的值。

内存是否分配给所有东西?

等号、s[i] 等?

在将字节赋给 s[i] 中的值后,s[i] 被赋给数组 s 中的某个其他值。然后将此其他值分配给 temp。

我无法理解所有这些字节的去向,以及 C++ 如何操纵它们。

我明白这行:

s[i] = s[strlen(s)-i-1];

正在交换占位符值?

在这一行中:

s[strlen(s)-i-1] = temp;

“复制”值被发送到“临时”。但是这个临时值之后会发生什么,一旦 for 循环重复,它会变成新的“临时”吗?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com