C ++中main函数之前的字符串声明

时间:2014-08-07 08:32:15

标签: c++ syntax

我是了解stri并宣布它们的新手。可以是字符串变量=“”; 我很困惑为什么你也可以在声明上加上一个等号。这是声明一个函数是空的类似全局变量吗?像int variable = 0;那有点像全局字符串变量吗?一旦我改变它,它将被存储在主要功能和其他功能中?

#include<iostream>
using namespace std;
string variable = "";
int main() {


return 0;
}

3 个答案:

答案 0 :(得分:0)

您发布的小例子有四个独立的部分:

1)包括必要的标题:

#include<iostream>

2)声明任何使用过的名称空间:

using namespace std;

3)现在这是你可能会问的问题:

string variable = "";

以上这一行完全独立于下面的功能。它声明名为variable全局变量,类型为string。它也为它赋值,恰好是空字符串,即""。你也可以说:

string variable = "My name is numLOCK";

因此,您只是将该变量的值初始化为指定的文本将aome值赋值给变量

4)接下来是main函数。这是实际的工作。

int main() {
    return 0;
}

请注意,您可以在main或任何其他函数中使用上面声明的全局变量。您还可以在函数内声明更多变量。例如:

string someText = "My name is numLOCK";

int main() {

    int someNumber = 42;

    cout << someText << endl;
    cout << someNumber << endl;

    return 0;
}

这将打印出来:

My name is numLOCK
42

答案 1 :(得分:0)

您可以通过两种方式为字符串变量赋值。

string variable = ""; 

这意味着您声明了一个名为变量的变量,其类型为字符串,并为此变量指定了一个空字符串。

您也可以这样指定值

string variable("");

这意味着与上面的完全相同。但在这里你不需要等号。

这是一个可以帮助您理解字符串http://www.cprogramming.com/tutorial/string.html

的参考

答案 2 :(得分:0)

您要问的语句定义了一个变量 命名空间范围(在本例中为全局命名空间)。它更多 或者更不像任何定义:除了关联和 一生:

生命周期是静态的,这意味着变量将是 在输入 main之前初始化(实际上,无论如何), 并且在 exit被调用后将被破坏。

链接是外部的,这意味着名称variable 总是指同一个实体,即使是在不同的翻译中 单元。

当然,由于范围是命名空间范围,因此变量 可以直接从该命名空间中的任何函数引用, 或嵌套在该命名空间中的任何命名空间。而且因为一切 其他名称空间嵌套在全局名称空间中,这意味着 变量可以被引用到任何地方(除非一些 其他声明正在隐藏它。)