C语言中的“=”是赋值,而不是一般意义下的等于。
换句话说,这个符号在C语言里面的功能是把右边的
常量、变量或者
表达式的值交给左边的变量。
要完成这个操作,右边可以是常量(此时这个常量直接交给左边的变量,如a=5;),也可以是变量(但是如果右边是变量时,就必须保证右边的变量已经正确赋值,如a=b;此时b必须是已经正确赋值的,执行此语句后,a的值就等于b的值了),还可以是表达式(与变量一样,右边的表达式中的每一个变量必须已经正确赋值,如a=b+c-5,此时右边的b和c必须已经正确赋值,执行语句后,a的值就是b的值加上c的值减去5)。
而“=”左边是接收右边的常量、变量或者表达式的值的。因此,常量不能被改变,不能作为“=”的左值,表达式中可能含有两个或多个变量,具体交给拿个系统不知道,所以也不能作为“=”的左值,只剩下变量,变量的值可以被改变。