我和我的朋友在理解静态和动态范围方面遇到了一些困难。我相信在dynamic中,变量(全局)将被其他函数不断更新,直到打印出来,而对于静态变量,我认为任何分配给变量的值都会保持不变。
这个想法对不对?
举个例子,使用上面的想法,我从这个代码片段中计算了以下内容。
int a, b, c;
void p() {
int a = 3;
b = 1;
c = a + b;
q();
}
void print() { printf(“%d %d %d\n”, a, b, c); }
void q() {
int b = 4;
a = 5;
c =
下面是我的代码:
//main.c
int x = 9;
int f()
{
static int x = 0;
x += 1;
return x;
}
int main()
{
printf("Value is %d", f());
return 0;
}
我的问题是:
Q1-在f()中,定义了一个本地的静态变量x,并且有一个全局变量(也称为x ),程序确实编译,但是它不与编译器和链接器冲突吗?
Q2-当我运行它时,输出为1,这意味着x += 1;中的x += 1;是本地静态变量x,而不是全局变量x.But,我的意思是“增量全局变量x
我正在编写一个2线程程序,其中一个写线程和一个读线程可以同时访问磁盘上的一个文件。写线程可以(1)从磁盘读取并创建一个新文件,它(2)删除旧文件,并将新文件(tmp)重命名为旧文件名。新文件总是比旧文件大。读取线程在case (1)期间从文件中读取。
但是,当新文件小于旧文件时,read中的fscanf会产生No such file or directory seg错误。我标识了写线程正在调用的函数,但我想知道写线程目前正在执行的语句以及局部变量值。函数很大,所以打印每个语句是不实际的。我如何使用GDB来发现这个问题呢?
Program received signal SIGSEGV, Seg
对于public int count(String str)方法
如何将字符串参数str存储在对象中?(I return the number of times is str in a Object )?
我已经写了以下代码,但我认为它不应该这样做。
public int count(String str)
{
int count = 0;
// if the Object contains str
if(contains(str)) {
count++;
else {
add(str); //add str to Object
count++;
}
我在木星笔记本上编写了一个黑杰克游戏,为此我有一个“玩家”和一个“经销商”类,还有一个函数(BlackJack()),它基本上运行整个游戏。
def BlackJack():
name = input("What is your name: ")
while True:
try:
money = int(input(f"Welcome to our casino Black Jack game {name}!How big is your balance in € : "))
我希望这个问题对于帮助我的人来说不是太基本了。
我有一个变量,他的值是我在一个方法中定义的,我想在另一个方法中使用和操作。这个是可能的吗?
我希望所附的简单示例代码会有所帮助。
我希望'c‘的值是3,但它只是2。
int a = 0;
-(void)method1 {
int a = 1;
NSLog(@"method 1--> a = %d", a);
}
-(void)method2 {
int b = 2;
NSLog(@"method 2--> b = %d", b);
int c = a + b;
NSLog(@"
我真的想知道为什么在下面的代码中输出是: 12而不是9:
#include <stdio.h>
int a = 4, b = 2;
int c = 3;
int f(void);
int main(void) {
printf("%3d\n", f());
printf("%3d%3d%3d\n", a, b, c);
return 0;
}
int f(void) {
int b, c;
a = b = c = 4;
return (a + b + c);
}
我的意思是,由于b和c的局部变量在
我正在阅读“Lua中的编程”,并且在这段代码中我不理解Lua中函数的行为:
function newCounter ()
local i = 0
return function () -- anonymous function
i = i + 1
return i
end
end
c1 = newCounter()
print(c1()) --> 1
print(c1()) --> 2
从我的观点来看,每个调用c1()都应该返回1,因为i在newCounter()的开头被初始化为零。但它看起来像线
local i = 0
在c1()调用中跳过。ne
我对按名字传递有疑问。
Procedure test ( int c, int d)
{
int k = 10;
c = 5;
d = d + 2 ;
k = c + d;
print (k);
}
main()
{
k = 1;
test(k,k);
print (k);
}
我确实提到了之前在上的一个问题
以及其中给出的链接:
我的问题是:上面的代码是否会打印:( 14,1)或(14,14)
从根本上说,质疑的是程序中k的价值是否在主程序中得到体现。
我在为考试做准备。这是
我的函数有点生疏了,所以在Visual C++ 2005中有一个简单的问题-局部(对函数)整型和双精度变量是否默认初始化为0?
在下面的代码中是正确的:
void Foo()
{
int a, b, c = 0;
double d, e, f = 0.0;
}
c和f分别初始化为0和0.0,而b、c、d和e未初始化,并且在所有优化都开启的发布模式下编译时可能会包含一些垃圾?
我有4个全局变量(字符串数组),我在一个视图控制器(比如firstViewController)中附加了这些变量。在追加值之后,当我试图在另一个视图控制器中访问这些值时,将传递一个零值。
第一ViewController
print("\(json)")
if let stockInfo = json?[0] {
if let value = stockInfo["l"] as? String {
print("Teja\(value)")
在下面的示例中,在检查if语句中的类型后,尝试访问子类型字段时会出现编译器错误。(在上测试)
void main() {
C().foo();
}
class C {
Exception e = MyException();
void foo() {
if (e is MyException) {
print(e.code);
// ^--- compiler error: 'code' isn't defined for the type 'Exception'
}
}
}
cl
x : integer := 3 //global scope
y : integer := 4 //global scope
procedure add
x := x + y
procedure second(P : procedure)
x : integer := 5
P()
procedure first
y : integer := 6
second(add)
first() //first procedure call in the main functi
我有一个全局变量列表,像这样:
int a, b, c, d;
这些变量用在专门计算它们的函数中,例如:
int my_func(string x)
{
//count var a//
}
现在我想使用'a‘和例如'b’作为我以这种方式声明的另一个函数的参数:
int multiplication(int a, int b);
并这样定义:
int multiplication(int a, int b)
{
c = a * b;
return c;
}
当我运行它时,我得到以下错误:
ac.c:75:27: error: declaration shadows a var
我正在上一门课程,我们在系统级编程方面做了很多工作,现在我们要开始介绍C了。我们得到了一些代码,并被告知用每个'printf‘语句打印出来的值。我知道如何用Java和Python等语言定期打印语句。但是,给出的代码中有一些我从未见过的打印部分的正文。语句按A、B、C、D顺序执行,这是代码:
int t; /* This variable is global */
{
int t = 2;
printf("%d\n", t); /* A */
{
printf("%d\n", t); /* B
我已经在C中声明了两个同名的全局变量,它应该会给出错误,因为我们不能在同一个存储类中声明同名变量。
我在C++中检查过它--它给出了一个编译时错误,但不是在C中。为什么?
代码如下:
int a;
int a = 25;
int main()
{
return 0;
}
请访问:
我想这可能就是原因
但在C++中情况并非如此。我认为在C++中,无论变量是在全局作用域还是自动作用域中声明的,声明和定义都是同时发生的。
有没有人能再解释一下。
现在,当我定义变量两次,给它两次值时,它会给我错误(而不是一次声明和一次定义)。
代码地址:
int a;
int a;
int a;
int a
我希望更好地理解事物,为什么在不将列表c声明为函数fct中的全局的情况下,这是有效的呢?变量a也不是这样吗?
def fct():
global a # have to declare this for "a" to work, but not for c[]
print(a,c) # by not declaring "a" as global, caused this to flag
# "accessing a without assignment", which I un