学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > c++ >

第二节 C++语法规则(3)

设置字体:
----------------------------------

全局变量Global variables 可以在程序中任何地方任何函数(function)中被引用,只要是在变量的声明之后。
本地变量local variables 的作用范围被局限在声明它的程序范围内。如果它们是在一个函数的开头被声明的(例如main函数),它们的作用范围就是整个main函数。在左图的例子中,这就意味着如果在main函数外还另有一个函数,main函数中声明的本地变量(Age, ANumber, AnotherOne) 不能够被另一个函数使用,反之亦然。
在C++中,本地变量(local variable)的作用范围被定义在声明它的程序块内(一个程序块是被一对花括号(curly brackets{})括起来的一组语句)。如果变量是在一个函数(function)中被声明的,那么它是一个函数范围内的变量,如果变量是在一个循环中(loop)中被声明的,那么它的作用范围只是在这个循环(loop)之中,以此类推。
除本地和全局范围外,还有一种外部范围,它使得一个变量不仅在同一源程序文件中可见,而且在其他所有将被链接在一起的源文件中均可见。
 
变量初始化(Initialization of variables
当一个本地变量( local variable)被声明时,它的值默认为未定(undetermined)。但你可能希望在声明变量的同时赋给它一个具体的值。要想达到这个目的,需要对变量进行初始化。C++中有两种初始化方法:
第一种,又叫做类C (c-like) 方法,是在声明变量的时候加上一个等于号,并在后面跟上想要的数值:
type identifier = initial_value ;
例如,如果我们想声明一个叫做a的int变量并同时赋予它0这个值,我们可以这样写:
int a = 0;
另外一种变量初始化的方法,又叫做构造函数(constructor)初始化, 是将初始值用小括号(parenthesis ())括起来:
type identifier (initial_value) ;
例如:
int a (0);
在C++.中以上两种方法都正确并且两者等同 。
// 变量初始化

#include <iostream>
using namespace std;

int main ()
{
  int a=5;    // 初始值为 5
  int b(2);   // 初始值为 2
  int result; // 不确定初始值

  a = a + 3;
  result = a - b;
  cout << result;

  return 0;
}
6
 
字符串 strings)
字符串是用来存储一个以上字符的非数字值的变量。
C++提供一个string类来支持字符串的操作,它不是一个基本的数据类型,但是在一般的使用中与基本数据类型非常相似。
与普通数据类型不同的一点是,要想声明和使用字符串类型的变量,需要引用头文件<string>,并且使用using namespace语句来使用标准名空间(std),如下面例子所示:
// C++字符串例题
#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string mystring = "This is a string";
  cout << mystring;
  return 0;
}
This is a string
如上面例子所示,字符串变量可以被初始化为任何字符串值,就像数字类型变量可以被初始化为任何数字值一样。
以下两种初始化格式对字符串变量都是可以使用的:
string mystring = "This is a string";
string mystring ("This is a string");
字符串变量还可以进行其他与基本数据类型变量一样的操作,比如声明的时候不指定初始值,和在运行过程中被重新赋值。
// C++字符串例题2
 #include <iostream>
#include <string>
using namespace std;

int main ()
{
  string mystring;
  mystring =
    "This is the initial string content";
  cout << mystring << endl;
  mystring =
    "This is a different string content";
  cout << mystring << endl;
  return 0;
}
This is the initial string content
This is a different string content
要了解更加详细的C++字符串操作,建议参考Cplusplus上的string类reference。
----------------------------------
课程列表
重点难点
赞助链接