笔记八中已经说到:在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。
C语言中的变量都必须在作用域开始的位置定义!
C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义。
我们用VC++6.0和VS2010进行演示。
先用VC++6.0建立一个.c的文件
#include<stdio.h>
void main()
{
int i;
int k;
printf("hello world\n");
i=10;
k=10;
printf("i:%d k:%d\n",i,k);
}
运行程序:
hello world
i:10 k:10
请按任意键继续. . .
运行没有问题,但是C语言里面如果把变量k的定义放到一条不是定义语句后面,那么运行就会报错。
#include<stdio.h>
void main()
{
int i;
//int k;
printf("hello world\n");
int k; //错误
i=10;
k=10;
printf("i:%d k:%d\n",i,k);
}
同样的代码我们用VS2010建立一个.cpp文件,运行程序没有问题:
我们还注意到,在.c文件中没有“system(“pause”)”语句,我们运行程序后显示窗口不会一闪而过,而在.cpp文件中我们如果没有这个语句显示窗口就会一闪而过。
#include<iostream>
using namespace std;
void main()
{
int i;
//int k;
printf("hello world\n");
int k;
i=10;
k=10;
printf("i:%d k:%d\n",i,k);
system("pause");
}
原文:https://www.cnblogs.com/tyyhmtyyhm/p/8971914.html