“int i=1,float j=2”与“int i=1;float j=2”有什么区别

sqw314 2011-05-25 05:05:42
“int i=1,float j=2”与“int i=1;float j=2”有什么区别
...全文
379 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
天外来客-007 2011-05-27
  • 打赏
  • 举报
回复
定义的一行,不能用逗号表达式连接两个不同的类型,建议使用第二种写法!
wxin 2011-05-27
  • 打赏
  • 举报
回复
应该是同类型的才写在一起
平常心006 2011-05-27
  • 打赏
  • 举报
回复
第一种是错误的写法,至少通不过vs 2005的编译器。
第二种才是正确的写法。
Louistao 2011-05-26
  • 打赏
  • 举报
回复
建议楼主理解下 逗号和分号的区别
fellatioyzx 2011-05-26
  • 打赏
  • 举报
回复
第一个在C98标准下应该是能过的吧,返回最后一个表达式得到的值。
微软的VS从2003后好像就变得严格了。
估计这个在VS6.0或者老版的gcc里都能过
guanzhouxuezi 2011-05-26
  • 打赏
  • 举报
回复
第一种在VC6.0下可以通过编译,在code::blocks下不能编译。建议使用第二种
kevin626521 2011-05-26
  • 打赏
  • 举报
回复
果断使用第二种,不解释。
LBJMD 2011-05-26
  • 打赏
  • 举报
回复
介个问题需要纠结吗,没想过你说的这个问题。
finalcheatss 2011-05-26
  • 打赏
  • 举报
回复
第一种写法不能通过编译吧?
lghhao123456 2011-05-26
  • 打赏
  • 举报
回复
果断采用第二种。
个人觉得,第一种写法虽然在VC6.0下编译通过了,但未必在其他编译器可行,可移植性不好。
等待高手详解。
std_call 2011-05-26
  • 打赏
  • 举报
回复
LZ,第一句根本就运行不通过。第二句还算正确。
定义以及初始化多个变量必须是同一类型的好么。
ww884203 2011-05-25
  • 打赏
  • 举报
回复
第二种才是对的啊
Bill_Hoo 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 bl520025 的回复:]

编译的时候有2个警告
warning C4518: 'float ' : storage-class or type specifier(s) unexpected here;ignored warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored
建议还……
[/Quote]
直接忽略float了?
那你用typeid测测,VS08直接报错的
Bill_Hoo 2011-05-25
  • 打赏
  • 举报
回复
一个定义中怎么能出现两个类型呢?
VC6.0通过了还真不能理解
逗号表达式哪有这样用的...
表示不解
HBack 2011-05-25
  • 打赏
  • 举报
回复
编译的时候有2个警告
warning C4518: 'float ' : storage-class or type specifier(s) unexpected here;ignored warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored
建议还是使用第二种
等待高人详细解答......
阿尔博特 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 namelij 的回复:]

一般都建议用第二种,为了方便区别

至于第一种,貌似不可以运行吧,我就见过 int i=1, j=2;这种,可能我out了吧
[/Quote]
第一个无法运行
xiaoguangzaia 2011-05-25
  • 打赏
  • 举报
回复
第一种我在vc6.0下还真编译通过了 - -

就是逗号表达式。逗号表达式会从左向右依次执行,如果要返回值最后会返回最右边的值。
一般在for语句里会看到逗号表达式:
for(int x,x=0;;)
这样就是定义了一个x并初始化为0。

像楼主这样只是定义的话我试了试貌似两种没区别啊,就是定义了两个变量。
只是不知道别的地方第一种情况能编译过不
purewqk 2011-05-25
  • 打赏
  • 举报
回复
明显编译不通过...
luciferisnotsatan 2011-05-25
  • 打赏
  • 举报
回复
int i=1,float j=2;
这个能过编译?
My_Love 2011-05-25
  • 打赏
  • 举报
回复
区别就是一个错的,一个正确
加载更多回复(6)

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧