A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

求大师们指教下:逗号表达式不是说在两句代码间可以通过逗号相连吗?那为什么在定义变量的时候必须得写成int a = 3 ,b = 4;而不能写成int a = 3 , int b = 4;虽然知道是应该int a = 3 ,b = 4;但是不明白为什么再定义变量的时候不能用逗号表达式,还有就是逗号表达式再什么地方不能使用?请各位先驱指导下。

QQ20141101-3.png (50.82 KB, 下载次数: 47)

QQ20141101-3.png

QQ20141101-4.png (123 KB, 下载次数: 33)

QQ20141101-4.png

QQ20141101-5.png (116.2 KB, 下载次数: 57)

QQ20141101-5.png

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

12 个回复

倒序浏览
int a,b;
就是定义变量的时候用int 表达式啊
当定义两个不同变量的时候不能用逗号
回复 使用道具 举报
逗号表达式的一般形式可以扩展为

    表达式1,表达式2,表达式3……表达式n

它的值为表达式n的值。

我认为你的方法定义会让第一个变量int i =2失效.

例子int c = ( 3+5, 6+8);
    printf("%d\n",c);
写在main函数里输出结果为14,编译的时候会有警告
lanwendongdeMacBook-Pro:ios基础 lanwendong$ cc -c 01-利用指针交换两个变量的值.c 01-利用指针交换两个变量的值.c:33:15: warning: expression result
      unused [-Wunused-value]

    int c = (3+5,6+8);
             ~^~
1 warning generated.

请注意并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。如

  printf("%d,%d,%d",a,b,c);

  上一行中的“a,b,c”并不是一个逗号表达式,它是printf函数的3个参数,参数间用逗号间隔。
如果写成 printf("%d,%d,%d",(a,b,c),b,c);则表示(a,b,c)是一个整体,值为c

希望对你有所帮助
回复 使用道具 举报
lanwen963 发表于 2014-11-2 06:43
逗号表达式的一般形式可以扩展为

    表达式1,表达式2,表达式3……表达式n

嗯嗯,谢谢你的回答
回复 使用道具 举报
诺微_ 发表于 2014-11-2 09:18
嗯嗯,谢谢你的回答

不客气共同学习,为了入学
回复 使用道具 举报
lanwen963 发表于 2014-11-2 09:43
不客气共同学习,为了入学

是的    你现在是不是已经顺利进入4期?
回复 使用道具 举报
诺微_ 发表于 2014-11-2 12:26
是的    你现在是不是已经顺利进入4期?

没有啊早呢 我也才报名,零基础边学边弄入学流程
回复 使用道具 举报
lanwen963 发表于 2014-11-2 16:05
没有啊早呢 我也才报名,零基础边学边弄入学流程

额   现在走到那里啦呢?
回复 使用道具 举报
int a = 3 , int b = 4;是两个语句,语句之间用分号,int a=3,b=4;这是一个语句,定义变量的时候初始化,用逗号分隔
回复 使用道具 举报
枫叶路过123 发表于 2014-11-2 18:39
int a = 3 , int b = 4;是两个语句,语句之间用分号,int a=3,b=4;这是一个语句,定义变量的时候初始化, ...

那printf("------"), printf("------");是几个语句?
回复 使用道具 举报
诺微_ 发表于 2014-11-2 18:19
额   现在走到那里啦呢?

写博客呢 早呢
回复 使用道具 举报
诺微_ 发表于 2014-11-2 20:16
那printf("------"), printf("------");是几个语句?

printf(),printf()是两个输出函数, ,;都行。 int 类型申明, 逗号运算符前后都是表达式,int 变量申明int a=3.int  b=4; 逗号后面接int 类型变量, int成为未声明的标示符。 一般 ,int a=3; int b=4;  或 int a=3,b=4;
回复 使用道具 举报
逗号是分开
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马