相关疑难解决方法(0)

"静态"在C中意味着什么?

static在C代码中看到了不同地方使用的单词; 这就像C#中的静态函数/类(其中实现是跨对象共享的)?

c syntax static

1062
推荐指数
15
解决办法
86万
查看次数

C中的指针需要解释这个微小的代码

#include <stdio.h>

int* func()
{
    static int a = 5; /* line 5 */
    printf("%d\n",++a);
    return &a; /* line 7 */
}

int main(void)
{
    int *b = func(); /* line 12 */
    (*b)++;
    func();
}
Run Code Online (Sandbox Code Playgroud)

这是编码作业的测试代码示例,因此不一定是最佳的.我有基本的c ++和Java知识,但是这些是C中的指针,我遇到了麻烦.

  1. func()的返回类型是指针,但它返回整数的地址(第7行).整数是静态的(第5行)是否必须对此做任何事情?

  2. 第12行实际上做了什么?

此代码的输出是:

6

8

c pointers pass-by-reference

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

在C ++中,在成员函数中定义静态常量变量有什么好处?

我正在使用一个其构造函数在实现中声明并初始化静态const变量的类。这不是该类的数据成员。我了解在这种情况下使用const,但是使用static有什么好处呢?

我知道该类的所有实例都共享静态const全局常量。构造函数内部的变量也会发生这种情况吗?

另外,为什么不像其他两个那样在Global范围内对此进行定义?那就是我通常定义常量的地方。

示例代码

#includes...

static const int GLOBAL_CONST1 = 100;
static const double GLOBAL_CONST2 = 1.0;

SomeClass::SomeClass()
   :
      theDataMember1        (),
      theDataMember2        (),
      ...
{

   static const double SOME_VAR = 0.01; // Why not declare this globally?
   theDataMember1 = SomeIncludedClass(SOME_VAR);

}
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c ×2

c++ ×1

pass-by-reference ×1

pointers ×1

static ×1

syntax ×1