| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 551 人关注过本帖
标题:[讨论]不正确吗??不明白!!
只看楼主 加入收藏
hen412
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-9-5
收藏
 问题点数:0 回复次数:3 
[讨论]不正确吗??不明白!!
{ main() { auto int a,s,p; printf("\ninput a number:\n"); scanf("%d",&a); if(a>0){ s=a+a; p=a*a; } printf("s=%d p=%d\n",s,p); } s,p是在复合语句内定义的自动变量,只能在该复合语句内有效。而程序的第9行却是退出复合语句之后用printf语句输出s,p的值,这显然会引起错误。} 以上这段说法对吗??"定义"是什么概念啊?是使用的时候呢?还是说明的时候?
搜索更多相关主题的帖子: 正确 明白 
2005-09-11 08:50
ljked1
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-8-31
收藏
得分:0 
auto 是系统默认的,可以不加.把第一个{  去掉,
#include<stdio.h>
main()
{int a,s,p;
printf("\ninput a number:\n");
scanf("%d",&a);
if(a>0)
{
s=a+a;
p=a*a;
}
printf("s=%d p=%d\n",s,p);
}
是可以的,编的应该没错.
最好考虑以下a<=0的,

2005-09-11 09:21
ljked1
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-8-31
收藏
得分:0 
你定义的a,s,p在main()的整个域里都有效
printf在main()里,所以可以

2005-09-11 09:30
hen412
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-9-5
收藏
得分:0 
前面的括号是没有的!整个这段是引用的教程上的话! main() { auto int a,s,p; printf("\ninput a number:\n"); scanf("%d",&a); if(a>0){ s=a+a; p=a*a; } printf("s=%d p=%d\n",s,p); } s,p是在复合语句内定义的自动变量,只能在该复合语句内有效。而程序的第9行却是退出复合语句之后用printf语句输出s,p的值,这显然会引起错误 他说会有错误! 可能是他 错了吧!! 我就说呢
2005-09-11 11:10
快速回复:[讨论]不正确吗??不明白!!
数据加载中...
 
   



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

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