手机版学校入驻客服中心网站导航

欢迎来到广西达内it教育机构!

咨询热线

广西哪里学C++变量的定义位置

来源:广西达内it教育机构    时间:2024/2/3 10:28:41

  C++ 不但在C语言的基础上进行了很多扩展,而且也对C语言部分做了细节上的改进,变量的定义位置就是其中之一。

  C89 规定,所有局部变量都必须定义在函数开头,在定义好变量之前不能有其他的执行语句。C99 标准取消这这条限制,但是 VC/VS 对 C99 的支持很不积极,仍然要求变量定义在函数开头。

  C89 和 C99 是两套不同的C语言标准,C99 是 C89 的升级版,我们已在《C语言的三套标准:C89、C99和C11》中进行了讲解。

  请看下面的代码:

  #include int main(){ int a; scanf("%d", &a); int b; scanf("%d", &b); int c = a + b; printf("%d\n", c); return 0;}

  将代码保存到源文件main.c,那么它可以在 GCC、Xcode 下编译通过,但在 VC/VS 下会报错。GCC、Xcode 对 C99 的支持非常好,可以在函数的任意位置定义变量;但 VC/VS 对 C99 的支持寥寥无几,必须在函数开头定义好所有变量。

  将上面的代码再保存到源文件main.cpp,那么它在 GCC、Xcode、VC/VS 下都可以编译通过。这是因为 C++ 取消了原来的限制,变量只要在使用之前定义好即可,不强制必须在函数开头定义所有变量。

  注意源文件的后缀,.c是C语言代码,.cpp是C++代码,它们的编译方式不同。

  取消限制带来的另外一个好处是,可以在 for 循环的控制语句中定义变量,请看下面的例子:

  #include using namespace std;int sum(int n){ int total = 0; //在for循环的条件语句内部定义变量i for(int i=1; i<=n ;i++){ total += i; } return total;}int main(){ cout<<"Input a interge: "; int n; cin>>n; cout<<"Total: "<

  运行结果:

  Input a interge: 10

  Total: 55

  在 for 内部定义循环控制变量 i,会让代码看起来更加紧凑,并使得 i 的作用域被限制在整个 for 循环语句内部(包括循环条件和循环体),减小了命名冲突的概率。在以后的编码过程中,我推荐这种写法。

联系方式

选择专业时,如果犹豫不定,不知道选择哪个比较好,敬请致电,专业的咨询老师会为你解答。

  • 报名热线:400-6263-721
  • 咨询老师:吴老师
  • 点击咨询:

常见问题

没有想要的答案?马上提问

电脑版|手机版

版权所有: 郑州天华信息技术有限公司