热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

100分:VC6中一条语句可否定义多个不同类型的变量

1、VC6中一条语句可否定义多个不同类型的变量,如int*a,chrb,unsignedintc,d;可以吗,如果不可以,那定义函数时,括号内的多个形参怎么可以仅用逗号隔开?d前
1、VC6中一条语句可否定义多个不同类型的变量,如 int * a,chr b,unsigned int c,d;

可以吗,如果不可以,那定义函数时,括号内的多个形参怎么可以仅用逗号隔开?

d 前没有类型限定符,到底是按int 还是按int * ,亦或是按unsigned int来定义?


2、 还有一个问题是一行可否写多个语句,如 int a;a=10;shor b;b=100;

28 个解决方案

#1


经测试,一条语句中不可以定义不同类型的变量。
但一行可以写任意多个语句的。
语句以分号结束,不以换行符结束。

#2


当然不可以!形参不是定义变量,那是特殊语法
2当然可以,C/C++忽略所有不影响语法的换行符

#3


有一个需要注意的地方:
int *p1, p2;
其中,p1是指向int的指针,但p2却是int类型变量。
所以,建议*紧靠变量名,而不是类型名。

同时还可以这样理解:*p1的类型是int

#4


你这也要测试?
引用 1 楼 loaden 的回复:
经测试,一条语句中不可以定义不同类型的变量。
但一行可以写任意多个语句的。
语句以分号结束,不以换行符结束。

#5


但是这条语句int * a,chr b,unsigned int c,d;

在VC6中编译执行均没有错误和警告。这怎么解释?

#6


本帖最后由 Loaden 于 2011-04-10 19:41:26 编辑
引用 5 楼 fanafanm 的回复:
但是这条语句int * a,chr b,unsigned int c,d;

在VC6中编译执行均没有错误和警告。这怎么解释?

解释为:VC6 编译器比较弱智。
我用VC10(VS2010SP1)测试错误:
D:\DengYC\LoveDEV\share\Config\TestCMD\Main.cpp(9) : error C2146: syntax error : missing ';' before identifier 'b'
D:\DengYC\LoveDEV\share\Config\TestCMD\Main.cpp(9) : error C2065: 'b' : undeclared identifier
D:\DengYC\LoveDEV\share\Config\TestCMD\Main.cpp(9) : error C2062: type 'unsigned int' unexpected
NMAKE : fatal error U1077: 'D:\DengYC\LoveDEV\bin\cl.exe' : return code '0x2'

#7


一条语句是不可以定义不同类型的变量的。
至于函数的形参那个不是定义变量括号里更不是一个语句。

#8


首先:你必须比编译器严格!编译器不抱错,那说明编译器不完美,而你作为程序员,保证你的程序的正确性是你的事情,而不是编译器的事情。编译器不一定需要对一些特别奇特的语法报错,任何软件都不可能绝对完美的,更何况是13年前的编译器

其次:我不知道你怎么编译的,我在vc6中确实看到了大量的警告

E:\projects\test1\test1.cpp(169) : warning C4518: 'unsigned int ' : storage-class or type specifier(s) unexpected here; ignored
E:\projects\test1\test1.cpp(169) : warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored
E:\projects\test1\test1.cpp(169) : warning C4101: 'DanWh' : unreferenced local variable
E:\projects\test1\test1.cpp(169) : warning C4101: 'inArr' : unreferenced local variable
E:\projects\test1\test1.cpp(170) : warning C4101: 'DANWEIL' : unreferenced local variable
E:\projects\test1\test1.cpp(170) : warning C4101: 'DANWEIH' : unreferenced local variable
Linking...


引用 5 楼 fanafanm 的回复:
但是这条语句int * a,chr b,unsigned int c,d;

在VC6中编译执行均没有错误和警告。这怎么解释?

#9


记住:编译器可以犯非常稀奇古怪的错误,只要是软件,就有不尽如人意的地方,编译器也是软件

#10


引用 9 楼 arong1234 的回复:
记住:编译器可以犯非常稀奇古怪的错误,只要是软件,就有不尽如人意的地方,编译器也是软件

所以一个好的编译器,让是可以 帮 助 我们少犯或不犯低级错误。
把警告调到/W4是一个比较好的习惯。

#11


该回复于2011-04-11 08:59:54被版主删除

#12


引用 5 楼 fanafanm 的回复:
但是这条语句int * a,chr b,unsigned int c,d;

在VC6中编译执行均没有错误和警告。这怎么解释?


D:\TEST\1\1.cpp(8) : error C2146: syntax error : missing ';' before identifier 'b'
D:\TEST\1\1.cpp(8) : fatal error C1004: unexpected end of file found

我的VC6.0怎么没通过哈

#13


一条语句当然不能定义多类变量,但一行可以写多条语句,
若是语句        unsigned   int    c,d;                表示c,d 是相同的数据类型

#14


不可以。。

#15


额 你看到过逗号运算符里面定义不同的变量吗?

#16


引用楼主 fanafanm 的回复:
1、VC6中一条语句可否定义多个不同类型的变量,如 int * a,chr b,unsigned int c,d;

可以吗,如果不可以,那定义函数时,括号内的多个形参怎么可以仅用逗号隔开?

d 前没有类型限定符,到底是按int 还是按int * ,亦或是按unsigned int来定义?


2、 还有一个问题是一行可否写多个语句,如 int a;a=10;shor b;b=10……

1 这样不可以,因为完整语句必须以分号结尾,表示一条完整的语句,编译器就是这么设计的,函数本身的定义就是包括N个参数,之间用逗号隔开,一个函数包括形参部分是一个完整部分
2 类似如下:int *a1,a2;这样定义的话,a1是int*类型,亦即指向int型的指针,而a2是一个整型变量
3 银行可以写多个语句,中间用分号隔开即可,如你所举int a;a=10;shor b;b=10;……是可以的,不知道这样解释可以否?

#17


当然是不可以的
注意语法 语法

#18


首先,我在想楼主为什么要这么写呢?

其次,看了楼上几个大侠说的,忍不住把那句话也拿到VS2010里面编译了一下,结论:不能通过。

#19


可以这么定义的
for(int a=0, char b;;);

#20


1不行
2可以,编译器是按 ; 来判断一句语句结束的。 

#21


语法问题还是根据标准来,除非自己实现一个编译器,这样规则可以自己定

#22


引用 19 楼 ulfsaar 的回复:
可以这么定义的
for(int a=0, char b;;);


我很负责的告诉你。你这样是不行的。

不同类型的变量必须用 ; 分号隔开。也就是说for初始部分只能定义一种类型的变量,但个数不限。

#23


1不可以 2 可以

#24


引用 22 楼 typecool 的回复:
引用 19 楼 ulfsaar 的回复:
可以这么定义的
for(int a=0, char b;;);


我很负责的告诉你。你这样是不行的。

不同类型的变量必须用 ; 分号隔开。也就是说for初始部分只能定义一种类型的变量,但个数不限。

我也可以很负责的告诉你,VC6.0绝对可以过,而且结果正确

#include 

void main()
{
for (int a=0, char c='9';;)
{
printf("%d %c\n",a,c);
break;
}
}


输出结果为:0 9

#25


以下是MSDN上for语句的说明的一部分
for
The for keyword is used to create a loop construct. An initialization section, an expression section, and an update section immediately follow the keyword. A semicolon separates each section, and all appear together within at least one set of parentheses.

The initialization section allows the programmer to declare one or more local loop variables. Once the loop ends, these variables are no longer valid.

#26


即使是for 循环里面也不肯能定义不同类型的变量。去看看逗号运算符吧

#27


不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。

#28


引用 6 楼 loaden 的回复:
引用 5 楼 fanafanm 的回复:

但是这条语句int * a,chr b,unsigned int c,d;

在VC6中编译执行均没有错误和警告。这怎么解释?

解释为:VC6 编译器比较弱智。
我用VC10(VS2010SP1)测试错误:
D:\DengYC\LoveDEV\share\Config\TestCMD\Main.cpp(9) : error C2146:……

呵呵,一语道破

推荐阅读
  • 本文探讨了 TypeScript 中泛型的重要性和应用场景,通过多个实例详细解析了泛型如何提升代码的复用性和类型安全性。 ... [详细]
  • RocketMQ 运维监控实践指南
    本文详细介绍了如何实现 RocketMQ 的运维监控,包括监控平台的搭建、常用运维命令及其具体用法。适合对 RocketMQ 监控感兴趣的读者参考。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • Spring Boot + RabbitMQ 消息确认机制详解
    本文详细介绍如何在 Spring Boot 项目中使用 RabbitMQ 的消息确认机制,包括消息发送确认和消息接收确认,帮助开发者解决在实际操作中可能遇到的问题。 ... [详细]
  • 作为一名新手开发者,我正在尝试使用 ASP.NET 和 Vue.js 构建一个单页面应用,涉及多个复杂组件(如按钮、图表等)。希望有经验的开发者能够提供指导。 ... [详细]
  • 在iOS开发中,多线程技术的应用非常广泛,能够高效地执行多个调度任务。本文将重点介绍GCD(Grand Central Dispatch)在多线程开发中的应用,包括其函数和队列的实现细节。 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • http:blog.csdn.netzeo112140articledetails7675195使用TCPdump工具,抓TCP数据包。将数据包上传到PC,通过Wireshark查 ... [详细]
  • 本文介绍了 JSON Schema 和 XML Schema 的基本概念,并详细讲解了如何使用 AJV 进行 JSON 数据校验。通过具体的示例和扩展方法,帮助读者更好地理解和应用这些工具。 ... [详细]
  • 在项目需要国际化处理时,即支持多种语言切换的功能,通常有两种方案:单个包和多个包。本文将重点讨论单个包的实现方法。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 开发笔记: URL参数处理与API请求示例
    本文记录了如何在开发过程中处理URL参数,并通过GET和POST方法发送API请求的具体步骤。 ... [详细]
  • PHP函数的工作原理与性能分析
    在编程语言中,函数是最基本的组成单元。本文将探讨PHP函数的特点、调用机制以及性能表现,并通过实际测试给出优化建议。 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
author-avatar
北斗七星
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有