黑马程序员技术交流社区

标题: 关于逗号表达式的一个疑惑,求大师们指教! [打印本页]

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

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

QQ20141101-3.png

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

QQ20141101-4.png

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

QQ20141101-5.png

作者: doudou33420    时间: 2014-11-2 02:19
int a,b;
就是定义变量的时候用int 表达式啊
当定义两个不同变量的时候不能用逗号
作者: lanwen963    时间: 2014-11-2 06:43
逗号表达式的一般形式可以扩展为

    表达式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

希望对你有所帮助

作者: 诺微_    时间: 2014-11-2 09:18
lanwen963 发表于 2014-11-2 06:43
逗号表达式的一般形式可以扩展为

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

嗯嗯,谢谢你的回答
作者: lanwen963    时间: 2014-11-2 09:43
诺微_ 发表于 2014-11-2 09:18
嗯嗯,谢谢你的回答

不客气共同学习,为了入学
作者: 诺微_    时间: 2014-11-2 12:26
lanwen963 发表于 2014-11-2 09:43
不客气共同学习,为了入学

是的    你现在是不是已经顺利进入4期?
作者: lanwen963    时间: 2014-11-2 16:05
诺微_ 发表于 2014-11-2 12:26
是的    你现在是不是已经顺利进入4期?

没有啊早呢 我也才报名,零基础边学边弄入学流程
作者: 诺微_    时间: 2014-11-2 18:19
lanwen963 发表于 2014-11-2 16:05
没有啊早呢 我也才报名,零基础边学边弄入学流程

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

那printf("------"), printf("------");是几个语句?
作者: lanwen963    时间: 2014-11-3 09:06
诺微_ 发表于 2014-11-2 18:19
额   现在走到那里啦呢?

写博客呢 早呢
作者: 枫叶路过123    时间: 2014-11-3 15:05
诺微_ 发表于 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;
作者: chenhuan_ccit    时间: 2014-11-3 17:50
逗号是分开




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2