热门标签 | 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:……

呵呵,一语道破

推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
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社区 版权所有