C++学习第2讲:变量的定义与作用域[讲义]

知识点:
1、变量的声明
2、变量的作用域与初始化

1)我们先回忆一下第1课,对C++程序有个基本的了解:
   A、包含所需的头文件
   B、不可缺少的入口函数:main()函数
   C、程序是由语句构成的,在C++里,区分语句的是句尾的“;”分号
   D、程序是用来处理数据的,所以必须定义一些数据
   E、给程序加上必要的注释
  

2)再回忆一下我们第1讲的示例代码


/*
FileName: HelloWorld_1.cpp
by iawen 11/06/2008
*/  

#include
using namespace std;

int main()
{
  cout<<"Hello World!\n";
  //cout<<"Hello World!"<
  cout<<"\n请按任意键退出……\n";
  cin.get();
  return 0;
}

有,程序是用来处理数据的,没有数据,还要程序干嘛???
这里的”Hello World!\n”,就是一个数据,是一个常量,字符串常量!!
cout<<是一个函数调用,用来输出数据显示到控制台。这里要输出的数据就是:"Hello World!\n" 3)C++语言是一种强类型的语言,要使用变量,必须提前声明。
   如:  char ch;
  //char szSource[10];
  bool bflag;
  short sNum;
  int iIndex;
  long lNum;
  float fParam;
  double dParam;
  void
  enum
  uion
  …………
  当然我们在一个语句里,同时定义多个变量,如:
  int a,b;

  另外,变量的命名是有一定要求的:
  A、只能使用字母字符、数字与下划线(_)
  B、名称的第1个不能是数字
  C、区分大小写的
  D、不能将C++的关键字作为变量名用
  E、以两个下划线(__)或下划线和大写字母开头的名称被保留给编译器使用
  F、不限长度,全部有效

  当然,函数的命名,也将遵循这个规则!
  
  不过有些类型的取值是有其规定范围的
  不过,不同环境下会有所变化,具体的,可以查阅这个头文件:climits

4)不过变量的声明是有其作用域的,
  一个声明将一个名字引进一个作用域
  像上面的命名空间:
    using namespace std;
  其实也是一个作用域:
    
  引用了这句,则std命名空间的变量与函数都将可以直接引用!
  所以这里的using namespace std;可以用在头文件下,也可以用在main()函数体内。当然也可以不用,不过在使用

命名空间里的定义的变量或函数时,就需要像这样来调用:
    std::cout<<"全局变量a的值为:"<


/* 文件名:  MyNamespace.cpp
   定义自己的作用域
*/

#include
namespace mynamespace{
  int value1;
  double value2;
}

int main()
{
  using namespace std;
  using namespace mynamespace;
  value1=8;
  value2=4.5;
  cout<<"value1*value2=  "<
  return 0;
}

5)变量的初始化

  局域变量,如果没有初始化,其值是未知的,不确定的。而全局变量,将自动初始为0.
我们可以测试一下:


/* filename:testvalue.cpp
   测试变量的初始化情况!
*/
#include
using namespace std;

int a;//这时定义的是一个全局变量,我们没有给它初始化!
int main()
{
  int x;//这是一个局域变量,同样没有初始化
  cout<<"全局变量a的值为:"<  cout<<"局域变量x的值为:"<  return 0;
}

结果为:


F:\Temp\C++教程视频\第02讲>testvalue
全局变量a的值为:0
局域变量x的值为:1

发表评论