黑马程序员技术交流社区

标题: 这道题的打印结果为什么是35啊?求解 [打印本页]

作者: 若何    时间: 2014-10-5 19:42
标题: 这道题的打印结果为什么是35啊?求解
#define pingfang(a) (a*a)
#include "stdio.h"
int main()
{
    int c = pingfang(5+5);
    printf("c is %d\n", c);
    return 0;
}
作者: 卡尔    时间: 2014-10-5 19:49
因为a = 5 + 5,带入后等于(5 + 5 *5  + 5)=35;
楼主建议你看下基础视频吧,里面都有讲到
作者: 若何    时间: 2014-10-5 19:51
卡尔 发表于 2014-10-5 19:49
因为a = 5 + 5,带入后等于(5 + 5 *5  + 5)=35;
楼主建议你看下基础视频吧,里面都有讲到 ...

额额,这么简单,我把5+5直接算出来了,⊙﹏⊙b汗
作者: 诺微_    时间: 2014-10-5 22:20
最好再加个括号呢!是吧
作者: 易孟飞    时间: 2014-10-6 01:17
顶一个,
作者: 陌生爱人    时间: 2014-10-6 10:52
#define 是直接替换不管优先级的 所以里面的每一个元素都要加括号 还有你的 stdio.h 是系统自带的头文件 应该用<>的
作者: ch8898163    时间: 2014-10-6 11:31
建议你还是看点写一点吧。。。。
作者: 若何    时间: 2014-10-6 20:31
ch8898163 发表于 2014-10-6 11:31
建议你还是看点写一点吧。。。。

嗯,我一直在看,还没总结笔记呢
作者: 若何    时间: 2014-10-6 20:34
陌生爱人 发表于 2014-10-6 10:52
#define 是直接替换不管优先级的 所以里面的每一个元素都要加括号 还有你的 stdio.h 是系统自带的头文件 应 ...

嗯,知道了,那个stdio.h 原题就用引号
作者: 若何    时间: 2014-10-6 20:37
诺微_ 发表于 2014-10-5 22:20
最好再加个括号呢!是吧

对的~需要再加括号
作者: 诺微_    时间: 2014-10-6 22:12
若何 发表于 2014-10-6 20:37
对的~需要再加括号

这个问题记得老是的视屏里讲过呢!
作者: 若何    时间: 2014-10-7 00:16
诺微_ 发表于 2014-10-6 22:12
这个问题记得老是的视屏里讲过呢!

额额,我跳着看,太不认真了。。。
作者: 邢玉池    时间: 2014-10-7 00:28
stdio.h   是系统自带的。自己写的.h文件  才用" "哟:lol
作者: 诺微_    时间: 2014-10-7 07:29
若何 发表于 2014-10-7 00:16
额额,我跳着看,太不认真了。。。

跳着看,那就一定是有基础咯
作者: 诺微_    时间: 2014-10-7 07:30
邢玉池 发表于 2014-10-7 00:28
stdio.h   是系统自带的。自己写的.h文件  才用" "哟

是的,系统自带的用尖括号〈〉
作者: 邢玉池    时间: 2014-10-7 22:17
诺微_ 发表于 2014-10-7 07:30
是的,系统自带的用尖括号〈〉

很给力啊,嘿嘿。相互水哈哈。。。
作者: 若何    时间: 2014-10-7 23:51
诺微_ 发表于 2014-10-7 07:29
跳着看,那就一定是有基础咯

有基础,只是好久没用C语言了,OC和iOS零基础
作者: 赵志文    时间: 2014-10-8 10:17
宏只是单纯的替换  不做运算    每个a都加一对括号    这样严谨,
作者: bhr756052342    时间: 2014-10-8 10:44
基础测试题啊这是
作者: 若何    时间: 2014-10-10 23:46
赵志文 发表于 2014-10-8 10:17
宏只是单纯的替换  不做运算    每个a都加一对括号    这样严谨,

嗯嗯,好的,学习了:P我还没看到宏
作者: 若何    时间: 2014-10-10 23:48
bhr756052342 发表于 2014-10-8 10:44
基础测试题啊这是

对啊~你也做过吧
作者: 米匠    时间: 2014-10-11 08:56
35.。。。。
作者: chri_liu    时间: 2014-10-28 17:21
好像视频里讲过哦
作者: SEAs    时间: 2014-10-28 17:47
宏定义的经典问题,宏只是简单 的替换,a*a 即是 5+5*5+5=35.
作者: 王绍明    时间: 2014-10-28 17:53
若a=(5+5)结果如何
作者: 王绍明    时间: 2014-10-28 17:55
没有细看 为什么不是(5+5)*(5+5)
作者: pangang    时间: 2015-4-16 14:15
赶紧加油了,还没看到宏替代
作者: 新生heima    时间: 2015-7-19 19:55
#define 这是带参数的宏定义,用pingfang(a)代替了a*a,在处理时表达式会展开为5+5*5+5,结果是35




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2