标签: variable-declaration

为什么这个 double 类型变量在作为函数参数传递时默认为 int ?

我正在学习 C 并试图帮助调试朋友的代码。他在全局范围内定义他的函数参数,然后像这样将它们传递给函数 def :

#include <stdio.h>

double x;


double myfunc(x){
    return x;    
}

void main(){

}
Run Code Online (Sandbox Code Playgroud)

我明白这是错误的,但不是为什么出现以下错误:

main.c:14:8: warning: type of ‘x’ defaults to ‘int’ [-Wimplicit-int] 
Run Code Online (Sandbox Code Playgroud)

有人能帮我理解计算机是如何解释这段代码的吗?

c function-parameter variable-declaration

2
推荐指数
1
解决办法
171
查看次数

C中的变量声明

我试图声明一个整数变量m和一个指向整数数据类型n的指针.

int m,*n;
*n=2;
printf("%d",*n);
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常.但

int *n,m;
*n=2;
printf("%d",*n);
Run Code Online (Sandbox Code Playgroud)

给出了分段错误.

请解释原因?

c memory-management segmentation-fault variable-declaration

1
推荐指数
1
解决办法
943
查看次数

未检测到变量被声明

好吧,我正在玩视觉基础,似乎有一段时间开始使用xD.无论如何不确定为什么我收到以下错误:

UACLevel_Level没有宣布.由于其保护级别,它可能无法访问.

我尝试点击小帮助图标的东西,它什么也没给我.

Dim ConsentPromptBehaviorAdmin = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin", Nothing)
Dim EnableLUA = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", Nothing)
Dim PromptOnSecureDesktop = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop", Nothing)
Dim UACLevel_Value = ConsentPromptBehaviorAdmin + EnableLUA + PromptOnSecureDesktop
If UACLevel_Value = 0 Then
    Dim UACLevel_Level = "Never notify me."
ElseIf UACLevel_Value = 6 Then
    Dim UACLevel_Level = "Notify me only when programs try to make changes to my computer(do not dim desktop)."
ElseIf UACLevel_Value = 7 Then
    Dim UACLevel_Level = "Default - Notify me only when programs try …
Run Code Online (Sandbox Code Playgroud)

vb.net variable-declaration

1
推荐指数
1
解决办法
374
查看次数

C:struct少一个字段.如何有效地声明/使用它?

假设我们有两个不同的struct主要是常见字段,但有一个或两个不同的字段或更少的字段.例如:

typedef struct HobbyNodetag {
    char *name; // hobby name
    struct HobbyNodetag* link; // link to next HobbyNode
    int count; // number of times this hobby was mentioned by user
    // more fields... 
    // but identical type/variable name with MyHobbyList
} HobbyNode; // database of entire hobby node; singly linked list

typedef struct MyHobbyTag{
    char *name; // hobby name
    struct MyHobbyTag* link; // linked to next MyHobbyNode
    // more fields... 
    // but identical type/variable name with EntireHobbyList
} …
Run Code Online (Sandbox Code Playgroud)

c struct variable-declaration type-declaration

1
推荐指数
1
解决办法
155
查看次数

如果C99解除了"块顶部的变量声明"约束,为什么在"for循环"中显示错误呢?

我从一个网站上读到C99解除了限制,即C中的变量必须在块的顶部声明.我在下面的程序中测试过,确实如此,因为我没有错误.但是在同一个程序中如果我在for循环的第一个语句中声明一个变量,我得到错误:

'for' loop initial declarations are only allowed in C99 mode|

这里有两件事.确实允许在程序中间声明变量,正如我所做的那样i,为什么我不允许在for循环语句中执行此操作?第二,如果我的编译器(Codeblocks/gcc)已经不在C99模式,为什么我在中间而不是顶部声明变量时没有出错?

#include <stdio.h>

int main (void)
{
  //Proof that initialization in middle works (for i)
  printf("Enter\n");
  char string[20];
  scanf("%s", string);
  int i=20;
  printf("%s,%i", string, i);
  //Proved that it works

  for(int j=0; j<10; j++) //THIS IS NOT ALLOWED
    printf("%d\n", j);
}
Run Code Online (Sandbox Code Playgroud)

c for-loop c99 variable-declaration

1
推荐指数
1
解决办法
881
查看次数

为什么在Python中'声明'变量?

我之前在Google上搜索了一些与Python相关的问题,并偶然发现了这个页面.作者做了类似以下的事情:

class TestClass(object):
    first = str()
    def __init__(self):
        self.first = "Hello"
Run Code Online (Sandbox Code Playgroud)

那个"声明"这个变量first有什么意义呢?我以前从未见过这样做过,而且我不能为我的生活想到这样一种情况,即在为变量赋值之前创建一个变量是有益的.

上面的例子可能看起来像这样:

class TestClass(object):
    def __init__(self, first="Hello"):
        self.first = first
Run Code Online (Sandbox Code Playgroud)

......或者我错过了什么?

python variable-declaration

1
推荐指数
1
解决办法
238
查看次数

在python中添加两个字符串

我正在尝试将两个字符串放在一起,但是当我运行此代码时,我不断收到错误.我确信这是基本的东西,但我一直在玩这个30分钟而且无法弄清楚出了什么问题

filename= 'data.txt'
1output = '1min' + filename
Run Code Online (Sandbox Code Playgroud)

python variables syntax syntax-error variable-declaration

1
推荐指数
1
解决办法
5万
查看次数

在Scala中引入新变量的方法有哪些?

众所周知,程序员可以使用val或在Scala中声明一个新变量var,如下所示:

val x = 10 //x is now defined and an Integer.
Run Code Online (Sandbox Code Playgroud)

函数参数还引入了一个新变量:

def fun(y: String) {
    //y of type String is now available here
}
Run Code Online (Sandbox Code Playgroud)

这些是直截了当的例子.但是,有更多方法可以在给定的上下文中声明变量.

例如,match表达式也可以引入新变量:

val z = 10
z match {
     case w: Int => w //w is a valid variable of type Int in this scope
}
Run Code Online (Sandbox Code Playgroud)

什么是在Scala中将变量引入特定范围的其他命令?

有兴趣的背景:

我在一个宏中使用它,它在抽象语法树中找到变量定义(ValDefs).match表达式或函数定义生成与普通ValDefs不同的语法树,我必须要处理它.因为我希望我的宏是健壮的,所以我想针对所有可能形式的变量声明来测试它.

评论说明:

方法定义def不受关注.此外,我只对源代码中可见的变量感兴趣,并且可以通过某些术语引用.

scala variable-declaration

1
推荐指数
1
解决办法
120
查看次数

“ void()”如何有用?

您不能声明void变量:

void fn() {
    void a; // ill-formed
}
Run Code Online (Sandbox Code Playgroud)

但这编译为:

void fn() {
    void(); // a void object?
}
Run Code Online (Sandbox Code Playgroud)

什么void()意思 有什么用?为什么void a;格式不正确,但void()可以?

void fn() {
    void a = void(); // ill-formed
}
Run Code Online (Sandbox Code Playgroud)

c++ void variable-declaration

1
推荐指数
1
解决办法
201
查看次数

`const n = 1u中``n`的类型是什么?

[编辑:下面讨论的声明在C++和现代C中无效; 他们依赖于C的"隐含int"规则,后来被删除了.Herb Sutter讨论了读者问答的变化.感谢评论者和user2079303指出这一点.]

我想知道C++中const变量类型的推断.

我们的旧编译器编译声明const n = 1;.我会假设n有这种类型const int.我认为这int不是从初始化表达式(1)的类型推断出来的,而是一个简单的语法规则.

那么n的类型是const n = 1u;什么?我认为它也是int,但是在C++ 17标准草案中找不到规则(这让我想知道它是否实际上是非法的但是被宽松的编译器所容忍).同样令人感兴趣的是C是否存在差异,因此两个标签都存在差异.

c c++ types const variable-declaration

1
推荐指数
1
解决办法
158
查看次数