标题:请问变量可以用==给常量吗?
只看楼主
梦小123
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2021-2-16
结帖率:88.89%
已结贴  问题点数:15 回复次数:5 
请问变量可以用==给常量吗?
# include <stdio.h>
int main()
{
    int a;
    a=2
    if(3==a);
    {
        printf("a is 3");
    }
    else
    {
        printf("a is %d",a);
    }


  return 0;
搜索更多相关主题的帖子: return 常量 变量 int printf 
2021-02-17 09:25
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:2 
if(3 = = a);

=   赋值
==  等于比较

这样赋值
这个毫无疑问是不可以的。任何一种编程语言都不可以。

[此贴子已经被作者于2021-2-17 12:32编辑过]


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-17 12:27
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
得分:5 
请问变量可以用==给常量吗?
(==)这个符号在很多编程语言里的用途是作为逻辑符号(相等)
而常量是不可以修改的,一般的变量可以修改
所以有给变量赋值这么一说 但是变量=常量(或变量)
而你问的 变量用==给常量 这是可以的 因为这样的意思是 变量与常量的逻辑是否相等的意思
根据你的程序代码
 if(3==a);//????这里怎么多了一个分号,思细极恐~~
    {
        printf("a is 3");
    }
猜测你是否是想 if(a==3)这样写? 这是可以的
(3==a)的写法其实是避免 出现把==写成= ,因为你把3写在前面若把==写成了= (3=a)那么程序就会报错,来提醒程序员
若写(a==3)若写成了(a=3)这个程序是正常的,若是几百万行的代码,若出了这个小问题,那就增加了排查的难度。

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2021-02-17 17:11
梦小123
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2021-2-16
得分:0 
回复 3楼 do8do8do8
最后两行文字还是没有理解,为啥怕程序员出错还要这样写呢?
2021-02-17 17:32
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
得分:8 
回复 4楼 梦小123
按这个写法(3==a),若程序员把(3==a)写成了(3=a),就犯了语法错误,那么在编译程序的时候,编译器不让编译成功就会报错,
根据报错的提示,程序员很容易修正过来
按这个写法(a==3),若程序员把(a==3)写成了(a=3),每有语法错误,编译器是让其编译成功的。
编译器只能帮你找出语法的错误,但不能找出语义的错误。
语法错误就是不符合编程语言的规则,
语义错误就是程序员编写的代码所得到的结果与原本想要的不符合,这个跟编译器没关系
把常量放在前面的写法,是想利用编译器来辨别,以防小错酿成大错
这其实是一种良好编码的忠告。

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2021-02-17 17:48
梦小123
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2021-2-16
得分:0 
回复 5楼 do8do8do8
谢谢
2021-02-17 17:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504884-1-1.html




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

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