| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 974 人关注过本帖
标题:写C一年了,还在这里迷惑,求解释啊
取消只看楼主 加入收藏
枝繁叶茂
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2011-3-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
写C一年了,还在这里迷惑,求解释啊
程序代码:
#include "stdafx.h"

int i;
i =0;// ????????????????  为什么在这两处不能定义或者说不能在上上面声明,不能在下面进行定义。这是C语言的什么规定啊

char arr[12];
arr[12]="abc";//???????????????


int _tmain(int argc, _TCHAR* argv[])
{
i =0;//为什么能在这定义? 
    return 0;
}
2011-09-29 09:09
枝繁叶茂
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2011-3-27
收藏
得分:0 
以下是引用TonyDeng在2011-9-29 09:20:26的发言:

tmain()外的int i是全局变量,已带默认初始化为零,而int = 0是赋值语句,必须在函数体内执行,此处不是函数体,所以非法(你代码中有两个这类语句,包括后面的arr[12] = "")。tmain()内的int = 0编译时报告非法,应该是你外面int = 0非法引起的连锁反应,把那句删掉,这个就没问题。你测试一下。

这是ANSI C的规定,不是VS独特的。


书上又说赋值语句只能在函数的进行吗?哎 翻书好久也没看到这句话。我用的似乎那本c语言程序设计B.wk D的那本

好想死
2011-09-29 09:24
枝繁叶茂
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2011-3-27
收藏
得分:0 
回复 7楼 A13433758072
谢谢提醒。有点思路了。再去翻翻书去。

好想死
2011-09-29 09:39
快速回复:写C一年了,还在这里迷惑,求解释啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017248 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved