标签: declaration

是否有必要在PHP中初始化/声明变量?

这个问题的目的是只为我和许多像我这样的人获取知识或信息.

所以我的问题是:

是否有必要在循环或函数之前初始化/声明变量?

问这个问题是我的困惑,因为我之前是否初始化/声明变量我的代码是否仍然有效.

我正在分享我实际意思的演示代码:

$cars = null;

foreach ($build as $brand) {
     $cars .= $brand . ",";
}

echo $cars;
Run Code Online (Sandbox Code Playgroud)

要么

foreach ($build as $brand) {
     $cars .= $brand . ",";
}

echo $cars;
Run Code Online (Sandbox Code Playgroud)

这两段代码对我来说都是一样的,所以在开始时初始化/声明一个变量是必要的吗?

php variables initialization declaration

28
推荐指数
2
解决办法
3万
查看次数

Java双初始化

这些陈述在哪些方面有所不同?

  1. double dummy = 0;
  2. double dummy = 0.0;
  3. double dummy = 0.0d;
  4. double dummy = 0.0D;

java double declaration

27
推荐指数
2
解决办法
8万
查看次数

在C#中,什么是<T>方法声明后?

我是VB.Net的人.(因为我必须这样做,因为签署我的支票的人是这样说的.:P)我在Java中长大,当我有机会时,我通常不会在C#中阅读或写作.我今天遇到了一些我从未见过的语法,而且我似乎无法弄明白.

在以下方法声明中,<T>表示什么?

static void Foo <T>(params T [] x)

我已经看到与声明泛型集合和事物一起使用,但我不能为我的生活弄清楚它对这个方法的作用.

如果它很重要,我在考虑一些C#脑筋急转弯时遇到过它.第六个预告片包含整个代码段.

c# methods declaration

27
推荐指数
2
解决办法
4万
查看次数

为什么"extern const int n;" 不按预期工作?

我的项目只包含两个源文件:

a.cpp:

const int n = 8;
Run Code Online (Sandbox Code Playgroud)

b.cpp:

extern const int n;

int main()
{
    // error LNK2001: unresolved external symbol "int const n" (?n@@3HB)
    int m = n; 
}
Run Code Online (Sandbox Code Playgroud)

我知道有几种方法可以使它工作; 但是,我只是想知道为什么它不起作用?

c++ const declaration extern

27
推荐指数
2
解决办法
2万
查看次数

为什么在函数内局部初始化外部变量会产生错误?

这段代码很好编译:

extern int i = 10;

void test()
{
    std::cout << "Hi" << i << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

虽然这个错误:

void test()
{
    extern int i = 10;
    std::cout << "Hi" << i << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

错误:'我'有'extern'和初始化程序

我读了C++ Primer

包含显式初始值设定项的任何声明都是定义.我们可以在定义为extern的变量上提供初始化器,但这样做会覆盖extern.具有初始化程序的extern是一个定义.在函数内部的extern上提供初始化程序是错误的.

有人可以解释为什么如果在函数本地完成这应该是一个错误,而在全局范围内允许这样做?

c++ declaration definition extern

27
推荐指数
3
解决办法
2万
查看次数

在C++中声明和初始化Conditional或Control语句中的变量

在Stroustrup的The C++ Programming Language:Special Edition(3rd Ed)中,Stroustrup写道,控制语句条件中的变量声明和初始化不仅是允许的,而且是鼓励的.他写道,他鼓励它,因为它将变量的范围缩小到只有它们所需的范围.所以像这样......

if ((int i = read(socket)) < 0) {
    // handle error
}
else if (i > 0) {
    // handle input
}
else {
    return true;
}
Run Code Online (Sandbox Code Playgroud)

...是很好的编程风格和实践.该变量i仅存if在于需要它的语句块中,然后超出范围.

但是,g ++(版本4.3.3 Ubuntu特定编译)似乎不支持编程语言的这个特性,这对我来说是令人惊讶的.也许我只是用一个标志来调用g ++来关闭它(我称之为的标志是-g-Wall).在使用这些标志进行编译时,我的g ++版本返回以下编译错误:

socket.cpp:130: error: expected primary-expression before ‘int’
socket.cpp:130: error: expected `)' before ‘int’
Run Code Online (Sandbox Code Playgroud)

在进一步的研究中,我发现我似乎并不是唯一一个不支持此编译器的编译器.并且在这个问题中似乎存在一些混淆,因为确切地说语言在语言中是什么标准,以及编译器使用它编译什么.

所以问题是,什么编译器支持这个功能以及需要设置哪些标志才能编译?这是某个标准而不是其他标准的问题吗?

另外,出于好奇,人们普遍认同Stroustrup这是好风格吗?或者这是一种语言的创造者在他脑海中获得一个想法的情况,这个想法不一定得到语言社区的支持?

c++ compiler-construction conditional declaration

26
推荐指数
4
解决办法
8537
查看次数

联盟可以在声明中初始化吗?

例如,假设我们有一个联盟

typedef union {
unsigned long U32;
float f;
}U_U32_F;
Run Code Online (Sandbox Code Playgroud)

声明此union类型的变量时,有没有办法设置初始值?

U_U32_F u = 0xffffffff;   // Does not work...is there a correct syntax for this?
Run Code Online (Sandbox Code Playgroud)

c initialization declaration unions

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

在C++头中声明数组并在cpp文件中定义它?

这可能是一件非常简单的事情,但我是C++的新手,所以需要帮助.

我只想在我的C++头文件中声明一个数组,如:

int lettersArr[26];
Run Code Online (Sandbox Code Playgroud)

然后在cpp文件的函数中定义它,如:

    lettersArr[26] = { letA, letB, letC, letD, letE, letF, letG, letH,
        letI, letJ, letK, letL, letM, letN, letO, letP, letQ, letR, letS,
        letT, letU, letV, letW, letX, letY, letZ };
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

我的语法有错吗?这是正确的方法是什么?

非常感谢.

c++ arrays header declaration

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

在存储过程中的while块中定义的变量范围 - SQl Server

我在存储过程中遇到了一个有趣的场景(至少对我而言).想有专家的意见和想法.

DECLARE @loopcounter INT
SET @loopcounter=10

WHILE @loopcounter > 0
BEGIN
  DECLARE @insidevalue int

  IF (@loopcounter%2 = 0)
  SET @insidevalue = @loopcounter

  PRINT 'Value_' + CAST(@insidevalue AS NVARCHAR) + '_'

  SET @loopcounter = @loopcounter - 1
END
Run Code Online (Sandbox Code Playgroud)

我期待这个块将给出如下输出

Value_10_

Value_ _

Value_8_

Value_ _

Value_6_

Value_ _

Value_4_

Value_ _

Value_2_

Value_ _
Run Code Online (Sandbox Code Playgroud)

相反,我输出如下:

Value_10_

Value_10_

Value_8_

Value_8_

Value_6_

Value_6_

Value_4_

Value_4_

Value_2_

Value_2_

我想如果我在while块中声明一个变量,那么对于每次迭代,它会将值重置为NULL或默认值(来自c#background).

如果这是设计的那么我的问题是SQLServer如何在块内处理该变量的'DECLARE'语句?是否因为变量已经在内存中而忽略它?

有人可以解释一下这种行为吗?

sql-server variables scope declaration sql-server-2008

26
推荐指数
4
解决办法
2万
查看次数

void * function()是指向函数的指针还是返回void *的函数?

我对的含义感到困惑void *function()
它是指向函数的指针还是返回的函数void*?我一直在数据结构上使用它作为返回指针的递归函数,但是当我在多线程(pthread)中看到代码时,会有一个相同的函数声明。现在我很困惑他们之间有什么区别。

c c++ pointers function-pointers declaration

26
推荐指数
2
解决办法
1839
查看次数