• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

c语言阅读赋值语句有什么好习惯吗?

diyatian 2017-01-11 浏览量:992
 本人c初学者,在c primer plus一书中作者不断强调不能读成xx等于xx,但我每次看到第一眼潜意识里总读成xx等于xx,求教有什么好方法改正吗?各位大佬是怎么读程序的?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以用宏定义做一点语法糖的工作:#define assign_latter_to_former(x,y) (x)=(y)

    这样你就可以这么写:


    assign_latter_to_former(result, 3+2)

    • 发布于 2017-01-12
    • 举报
    • 评论 1
    • 0
    • 0
diyatian 回复了 AnalogSynth:嗯,是这样的,一下子这样很难接受 回复

其他答案 数量:7
  • 嗨,您是說以下Code嗎?

    x=y
    其實您只要想成這跟數學不一樣

    x=y (數學相等)
    而在C語言裡面則是

    x==y (C語言中相等)
    所以當您看到

    x=y //想成assign the value of y to x
    這樣應該很容易懂了

    • 发布于2017-01-11
    • 举报
    • 评论 1
    • 2
    • 0
diyatian 回复了 MOP :似乎懂了 回复

  • 可以用宏定义试着做一点语法糖的工作:

    /******/

    #define assign_latter_to_former(x,y) x=(y)


    int testcase(void) {

    int result;

    assign_latter_to_former(result, 3+2); /*忘了分号了,此处宏定义展开后应该会是result=(3+2);*/

    return result;

    }

    • 发布于2017-01-12
    • 举报
    • 评论 1
    • 1
    • 0
diyatian 回复了 AnalogSynth :这样似乎更直接一些 回复

  • 赋值的话a=12;判断的时候写成12==a;
    • 发布于2017-01-12
    • 举报
    • 评论 1
    • 1
    • 0
diyatian 回复了 afeiafei309 :赋值和等于都有什么区别? 回复

  • 一个等号是赋值,是算术运算符(也叫算子)里的赋值运算符

    两个等号是等于,是比较运算符(也叫逻辑运算符)里的等于符号

    • 发布于2017-01-12
    • 举报
    • 评论 3
    • 0
    • 0
diyatian 回复了 xukejing :算数运算是不是赋值后数据会变,比较运算就是直接是这个值吧 回复
AnalogSynth 回复了 xukejing :相对于“算数运算符和比较运算符"的分类,我倾向于单等号其实也是普通运算符,只是带有副作用(side effect) 回复
AnalogSynth 回复了 xukejing :毕竟单等号也是可以当作右值的:c=(a=b) 回复

  • 我也是开始和你一样,把赋值看成等于,但慢慢的,你会发现你写多了看多了就不一样了, 因为你没有必要刻意去怎么读他,=就是把右边的值给左边,==才是布尔判断,不用刻意强求怎么读,你理解就好,就和说话一样,把它看成一种和机器交流的语言就好,你能理解就行
    • 发布于2017-01-13
    • 举报
    • 评论 2
    • 0
    • 0
AnalogSynth 回复了 heaton426 :但是不能解释的一点是为什么不设计成c<-a这样的形式?而c明明有右箭头运算符(->)的 回复
AnalogSynth 回复了 heaton426 :可以从C的历史来考虑。当年C语言开发出来的时候能用上C的都是大神级别人物,自然不会把=看成是等于,因为计算机并没有等于指令,只有赋值指令 回复

  • 写得多了自然就改过来了
    • 发布于2017-01-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

c语言阅读赋值语句有什么好习惯吗?