Python非常容易学习和理解; 我喜欢它使用关键字,缺乏复杂的语法(与perl相反,从我听到过),以及易于使用的数据结构.但是,我不能忍受缺少变量声明,因为它无法明确地告诉Python你想要变量的范围.是否有任何语言具有我喜欢的Python 以及变量声明的所有特性,也许还有一套不错的库?
Thankslot.
据我说,while循环应该是无限的,但它只运行三次
main()
{
int i=3;
while(i--)
{
int i=100;
i--;
printf("%d..",i);
}
}
Run Code Online (Sandbox Code Playgroud)
它输出 99..99..99
但据我说,它应该运行无限次,因为每次控制进入循环时它获得值100.因此它永远不会达到零.只是为了实验我替换int i=100;了 i=100;in while循环,现在它运行无限次..WHY ???
在函数顶部声明变量时,这两种方法之间是否存在差异?
var firstvar;
var secondvar;
var thirdvar;
Run Code Online (Sandbox Code Playgroud)
和
var firstvar,
secondvar,
thirdvar;
Run Code Online (Sandbox Code Playgroud) C11标准(注意我不是指C++ 11)是否允许您在函数中的任何位置声明变量?
以下代码在ANSI C(C89,C90)中无效:
int main()
{
printf("Hello world!");
int a = 5; /* Error: all variables should be declared at the beginning of the function. */
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它是C11中的有效源代码吗?
#include<stdio.h>
int main()
{
int i = 10;
printf("0 i %d %p\n",i,&i);
if (i == 10)
goto f;
{
int i = 20;
printf("1 i %d\n",i);
}
{
int i = 30;
f:
printf("2 i %d %p\n",i,&i); //statement X
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
[test]$ ./a.out
0 i 10 0xbfbeaea8
2 i 134513744 0xbfbeaea4
Run Code Online (Sandbox Code Playgroud)
我很难理解语句X如何工作?当你看到输出它是垃圾.应该说我没有声明?
我switch在我的C++代码中有一个语句,并且想在该语句中声明并使用一个变量case.该变量仅在该特定范围内使用case.
switch(mode)
{
case abc:
...
struct commonData;
commonData = manager->getDataByIndex(this->Data.particularData);
int someInt = 1;
...
break;
case xyz:
...
commonData = Manager->getDataByIndex(this->Data.particularData);
break;
default:
...
break;
}
Run Code Online (Sandbox Code Playgroud)
我试过简单地声明,初始化和使用变量(int someInt)就在里面case,但这给了我一些编译错误......在SO上遇到这个问题:为什么变量不能在switch语句中声明?,我尝试做了答案的建议,并添加{}到case问题中,所以我switch现在看起来像这样:
switch(mode)
{
case abc:
{
...
struct commonData;
commonData = manager->getDataByIndex(this->Data.particularData);
int someInt = 1;
...
break;
}
case xyz:
...
commonData = manager->getDataByIndex(this->Data.particularData);
break;
default:
...
break;
}
Run Code Online (Sandbox Code Playgroud)
但我现在收到编译错误,说明:在一个变量(commonData)的"未声明的标识符",在该 …
在VBA中,我可以Dim用这种简洁的方式在一行中将多个对象作为整数对象,还是只声明它d是一个整数?
Dim a, b, c, d As Integer
Run Code Online (Sandbox Code Playgroud) 我有3个不同的对象A,B和C.根据给定的参数,我想在这些不同的对象中进行选择.在编程中,
class A {
public:
void printHello() { cout << "HELLO A" << endl; }
};
class B {
public:
void printHello() { cout << "HELLO B" << endl; }
};
class C {
public:
void printHello() { cout << "HELLO C" << endl; }
};
int main () {
string key = "c";
A a;
B b;
C c;
Object obj; // I don't know how to declare Object.
if (key == "a") …Run Code Online (Sandbox Code Playgroud) 我有一个数组,其大小在源文件中定义的编译时确定。
const int array[] = {1, 3, 3, 7};
Run Code Online (Sandbox Code Playgroud)
元素的数量将来可能会发生变化,因此我宁愿不在括号中对其进行硬编码。
这个数组需要从几个源文件中访问,所以我试图在头文件中添加一个 extern 声明。但是,由于隐式数组大小,我不确定这是否可行。我尝试了两种变体:
extern const int array[]; // Warning: size of symbol `array' changed from 8 to 16
extern const int *array; // error: conflicting types for 'array'
Run Code Online (Sandbox Code Playgroud)
是否可以这样做,或者我应该寻找解决方法?
以下代码将返回错误,
$ perl -E'sub foo { my $bar if 0; $bar++ }'
This use of my() in false conditional is no longer allowed at -e line 1.
Run Code Online (Sandbox Code Playgroud)
但是这段代码
$ perl -E'sub foo { my $bar = undef if 0; $bar++ }'
Run Code Online (Sandbox Code Playgroud)
不返回错误。这两种形式有什么区别吗?