作者:北斗七星 | 来源:互联网 | 2023-09-16 13:47
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 个解决方案
经测试,一条语句中不可以定义不同类型的变量。
但一行可以写任意多个语句的。
语句以分号结束,不以换行符结束。
当然不可以!形参不是定义变量,那是特殊语法
2当然可以,C/C++忽略所有不影响语法的换行符
有一个需要注意的地方:
int *p1, p2;
其中,p1是指向int的指针,但p2却是int类型变量。
所以,建议*紧靠变量名,而不是类型名。
同时还可以这样理解:*p1的类型是int
但是这条语句int * a,chr b,unsigned int c,d;
在VC6中编译执行均没有错误和警告。这怎么解释?
一条语句是不可以定义不同类型的变量的。
至于函数的形参那个不是定义变量括号里更不是一个语句。
记住:编译器可以犯非常稀奇古怪的错误,只要是软件,就有不尽如人意的地方,编译器也是软件
一条语句当然不能定义多类变量,但一行可以写多条语句,
若是语句 unsigned int c,d; 表示c,d 是相同的数据类型
首先,我在想楼主为什么要这么写呢?
其次,看了楼上几个大侠说的,忍不住把那句话也拿到VS2010里面编译了一下,结论:不能通过。
可以这么定义的
for(int a=0, char b;;);
1不行
2可以,编译器是按 ; 来判断一句语句结束的。
语法问题还是根据标准来,除非自己实现一个编译器,这样规则可以自己定
以下是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.
即使是for 循环里面也不肯能定义不同类型的变量。去看看逗号运算符吧
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。