小编Sad*_*que的帖子

一类中静态成员的内存分配

我最近发布了一个问题: 静态类成员的初始化.

现在请检查此代码:

#include<iostream>
class A
{
    static int obj_s;
public: 
    A()
    {
        obj_s++;
        std::cout << A::obj_s << "\nObject(s) Created\n";
    }
};

int A::obj_s = 0;

int main()
{
}
Run Code Online (Sandbox Code Playgroud)

即使一个人没有创建任何A类对象,使该成员obj_s保持一个值0- 自定义之后是不是需要内存?

c++ visual-c++ c++11

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

同时执行if和else块

在C或C++中

if ( x )
    statement1;
else
    statement2;
Run Code Online (Sandbox Code Playgroud)

x两个陈述的执行价值是什么?

我知道我们可以if-else像这样一起执行:

if(1){
    goto ELSE;
}
else{
    ELSE:
}
Run Code Online (Sandbox Code Playgroud)

有什么办法,比如价值吗?(我认为这是不可能的.问,因为有人在争论!)

c c++ conditional-statements

6
推荐指数
2
解决办法
4185
查看次数

无法解决有关此代码的难题


int i,n=20;
for(i=0;i<n;i--)
printf("-");
Run Code Online (Sandbox Code Playgroud)

我一直在喋喋不休,但却未能解决这个问题.

从上面的代码中删除任何单个字符或运算符,程序应打印" - "20次

请帮忙!

c c++ puzzle

5
推荐指数
3
解决办法
1330
查看次数

char * 是什么意思

所以...假设我有这样的功能...

int function( const char *c )
{
 //do something with the char *c here...
}
Run Code Online (Sandbox Code Playgroud)

这是什么char *c意思?我认为我一般了解字符,但我不明白 * 的作用......或者它如何改变含义。

c c++ char

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

为什么这个程序会崩溃

它在执行时崩溃:

#include <iostream>

int main ()

{
    if(main());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么?

c++ visual-c++

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

字符串长度

字符串操作问题

http://www.ideone.com/qyTkL

在上面的程序中(在C++ Primer,第三版作者Stanley B. Lippman,JoséeLajoie练习3.14中给出),字符指针的长度是len + 1

char *pc2 = new char[ len + 1];
Run Code Online (Sandbox Code Playgroud)

http://www.ideone.com/pGa6c 但是,在这个程序中,我所使用的字符指针的长度是len

char *pc2 = new char[ len ];
Run Code Online (Sandbox Code Playgroud)

当我们得到相同的结果时,为什么需要将新字符串的长度设置为1.请解释.

请注意,我在此处显示的程序略有改动.与书中的不完全相同.

c c++

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

C如何标准化?

由于C是作为通用语言开发的,一般不属于私营公司,是否可以解释标准化过程?

我的意思是这个标准化过程是如何产生的?

c standards

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

在C/C++中将月/日/年/时间转换为时间

在C/C++中,假设我有以下值:

int year = 2010;
int month = 6;
int day = 15;
int hour = 14;
int minute = 52;
int seconds = 34;
int microseconds = 141231;
Run Code Online (Sandbox Code Playgroud)

将此转换为时间段的最简单方法是什么?我认为timeval是自1970年1月1日以来的时间?但每次手动计算这个似乎非常繁琐.什么是最简单(也是最快)的方法?

谢谢

c c++ time timeval

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

golang从函数返回对象

当我从go中的函数返回一个新对象时,我正在努力弄清楚到底发生了什么.

我有这个

func createPointerToInt() *int {
    i := new(int)
    fmt.Println(&i);
    return i;
}

func main() {
    i := createPointerToInt();
    fmt.Println(&i);
}
Run Code Online (Sandbox Code Playgroud)

返回的值是

0x1040a128
0x1040a120
Run Code Online (Sandbox Code Playgroud)

我希望这两个值是相同的.我不明白为什么有8字节的差异.

在我所看到的等效C代码中:

int* createPointerToInt() {
    int* i = new int;
    printf("%#08x\n", i);
    return i;
}

int main() {
    int* r = createPointerToInt();
    printf("%#08x\n", r);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

返回的地址是相同的:

0x8218008
0x8218008
Run Code Online (Sandbox Code Playgroud)

我在这里错过了一些令人目眩的事吗?任何澄清将不胜感激!

c go

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

如何将功能仅限于主要功能?

让我们说我有

FILE1.C:

#include<stdio.h>
#include"File2.c"

void test(void)
{
sum(1,2);
}

int main(void)
{
int sum(int a,int b);
test();
sum(10,20);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

file2.c中:

int sum(int x,int y)
{
printf("\nThe Sum is %d",x+y);
}
Run Code Online (Sandbox Code Playgroud)

现在我的理解是test()调用sum()应该给出一个编译时错误,因为我已经/声明了sum()本地到main,我没有得到,并且程序运行良好没有任何错误.

我的主要目的是在File2.c中定义sum并使其为main()的本地,这样其他函数就无法看到这个函数sum().

我哪里错了?

c c++ objective-c

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