鱼C论坛

 找回密码
 立即注册
查看: 1956|回复: 1

宏的一个问题

[复制链接]
发表于 2011-12-11 17:38:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zhoutong 于 2011-12-11 17:38 编辑

# include <stdio.h>
#define LEAP_YEAR(y) y % 4 == 0 && y % 100 == 0 || y % 400 == 0
int main ( int argc , char * argv [ ] )
{
        int year ;
        printf ( "%输入一个年份:" );
        scanf ( "%d" , &year ) ;
        LEAP_YEAR(year) ;
        if  ( LEAP_YEAR(year) )
                printf ( "%d is a leap year. \n" , year ) ;
        else
                printf ( "%d is not a leap year. \n" , year ) ;
}
这里面的year为什么是原样输出?
# include <stdio.h>
#define swap(A , B) int T ; T = A ; A = B ; B = T ;
int main ( int argc , char * argv [ ] )
{
        int a , b ;
        printf( "输入两个整数" ) ;
        scanf ( "%d%d" , &a , &b ) ;
        printf ( "a=%d b=%d\n" , a , b ) ;
        swap(a , b) ;
        printf ( "a=%d b=%d\n" , a , b ) ;
        return 0 ;
}
这里面的a b 为什么不是原样输出?


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-11 18:09:13 | 显示全部楼层
# include <stdio.h>
#define LEAP_YEAR(y) y % 4 == 0 && y % 100 == 0 || y % 400 == 0
int main ( int argc , char * argv [ ] )
{
        int year ;
        printf ( "%输入一个年份:" );
        scanf ( "%d" , &year ) ;
        LEAP_YEAR(year) ;
        if  ( LEAP_YEAR(year) )
                printf ( "%d is a leap year. \n" , year ) ;
        else
                printf ( "%d is not a leap year. \n" , year ) ;
}
这里面的year为什么是原样输出?
答: 因为这段程序并没有对变量year进行赋值。
     另外,这段程序后面应该加上 return 0; 否则编译是会报错的。
# include <stdio.h>
#define swap(A , B) int T ; T = A ; A = B ; B = T ;
int main ( int argc , char * argv [ ] )
{
        int a , b ;
        printf( "输入两个整数" ) ;
        scanf ( "%d%d" , &a , &b ) ;
        printf ( "a=%d b=%d\n" , a , b ) ;
        swap(a , b) ;
        printf ( "a=%d b=%d\n" , a , b ) ;
        return 0 ;
}
这里面的a b 为什么不是原样输出?
答:这段程序中的swap( a, b)相当于
    int T ; T = a ; a = b ; b = T ;
      此时, a  和 b已经被赋值改变了。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-9 23:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表