C语言中 变量只可以在一个程序块的最开始处定义

[复制链接]
2606|7
 楼主| hartcomm 发表于 2008-10-19 22:31 | 显示全部楼层 |阅读模式
晕死了 搞死了
hgjinwei 发表于 2008-10-19 22:32 | 显示全部楼层

难道你还想在程序块最后定义?

 楼主| hartcomm 发表于 2008-10-19 22:45 | 显示全部楼层

C++可以随意定义啊

以前只知道C中for() 括号中不能定义, 其他一直没在意。一般定义全局变量 其他的一般也定义在函数开始出。很长时间没写c了,今天遇到这个问题,晕死了。
原野之狼 发表于 2008-10-19 23:53 | 显示全部楼层

..

void main{
    //declare variable here is ok;
    do something;
    //declare variable here is not ok;
   {
       //declare variable here is ok;
       do something;
   }
   do something;
}
 楼主| hartcomm 发表于 2008-10-20 00:24 | 显示全部楼层

谢谢! 确实很奇怪!

void main{
    //declare variable here is ok;
    do something;
    //declare variable here is not ok;
   {
       //declare variable here is ok;
       do something;
   }
   do something;
}

----------------------------------------------

奇怪,只要加一个{ },就可以编译了! 
hgjinwei 发表于 2008-10-20 14:05 | 显示全部楼层

加个{ }就是加个程序块啊,定义的变量只在{ }内有效,跑出去就不认了.
 楼主| hartcomm 发表于 2009-2-15 23:19 | 显示全部楼层

有遇到一个c c++ 问题 C++居然不可以在函数外赋值变量!而c可

以下代码如果以 .c后缀则可编译通过 以.cpp为后缀则报错 重复定义  在VC++中

int a;
a=1;
void main()
{    a=1;
}
E007 发表于 2009-2-15 23:26 | 显示全部楼层

定义与赋值写在一起,你试下

如题,这样写:

int a=1;
void main()
{    a=1;
}


你单独写一行相当于执行一条语句,而这条语句不在任何函数内,编译器当然报错.而定义变量与赋值同时做,就是定义一个有初值的全局变量.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

684

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部