错题笔记:int a=b=1这样定义为什么是错误的

  • C语言中定义同一类型的多个变量必须以逗号分隔。如:

    int a,b,c ;

  • =在C语言中是赋值运算符,等号左边的变量,必须是已以定义好的变量才可以。

    int a=b=1 ; 中,若b已经定义,则是正确的。否则,b未定义,这样写就错了。如:

    int b; //少了这个定义,下面就不对了。

    int a=b=1 ; 

  • 如果想同时定义多个变量,并对变量初始化,则应该写成:

    int a=1, b=1; //中间以逗号分隔。

    //-----------------------------------------------------------------------------------


  • 因为机器是这样翻译的:先把1赋值给b,再把b赋值给a,中间的那个b,它认为是未定义的。
    你可以这样写:int a,b;a=b=1;
  • 这样只定义了a的类型为int。那么b是什么类型呢?编译器不知道。既然类型都不知道怎么可能把b的值赋给a呢?
    可以这样写int a,b ;a=b=1;这样就没错了。
posted @ 2022-11-01 23:48  iZJ"Qq4577105  阅读(265)  评论(0编辑  收藏  举报