小编gui*_*eek的帖子

叉子让我很困惑

任何人都可以解释一下这段代码是如何工作的?

int main()
{
  printf("Hello");
  fork();
  printf("World");
}
Run Code Online (Sandbox Code Playgroud)

打印:

HelloWorldHelloWorld
Run Code Online (Sandbox Code Playgroud)

我的确切问题是,为什么hello打印两次.是不是hello先打印,然后fork()执行?

此外,有时它打印:

 HelloWorld 
// then the reports....process exited with return value 0..etc etc.. then...//
HelloWorld
Run Code Online (Sandbox Code Playgroud)

为何输​​出?

c fork

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

无法在linuxmint 17上的代码:: blocks 13.12中运行c/c ++代码:状态255

我无法在code :: blocks中运行任何C/C++程序.有人可以建议为什么会这样吗?目前我在系统上安装了gnu c和g ++编译器.关于构建和运行这个简单的c代码的错误消息:

#include<stdio.h>

int main(){
    printf("55");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

是:

检查是否存在:/ home/user1/Desktop/progs/a执行:xterm -T'/ home/user1/Desktop/progs/a'-e/usr/bin/cb_console_runner"/ home/user1/Desktop/progs/a "(在/ home/user1/Desktop/progs中)

处理终止,状态为255(0分钟,6秒(秒))

c linux codeblocks linux-mint

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

如何存储然后打印2d字符/字符串数组?

假设我有:老虎,狮子,长颈鹿.

如何char使用for循环将其存储在二维数组中scanf,然后使用循环逐个打印单词for

就像是

for(i=0;i<W;i++)
{
    scanf("%s",str[i][0]);  //to input the string
}
Run Code Online (Sandbox Code Playgroud)

PS很抱歉提出这样一个基本问题,但我在Google上找不到合适的答案.

c arrays string character

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

解释代码中的继承?

有这个代码:

class Base{
    public:
    void disp(){
    cout<<"base"<<endl;
    }
};

class Der1:public Base{
    public:
    void test1(){
    cout<<"der1 test1"<<endl;
    }
};

class Der2:public Base{
    public:
    void test2(){
    cout<<"der2 test2"<<endl;
    }
};

class Der3:public Der1,Der2{
    public:
    void fun(){
    cout<<"Der3 fun"<<endl;
    }
};


int main()
{
    Der3 d;
    d.test1();
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT:der1 test1 //成功打印

但对于

int main()
{
    Der3 d;
    d.test2();
}
Run Code Online (Sandbox Code Playgroud)

它给出了Der2无法访问的错误......

但是,当我将代码更改为

class Base{
        public:
        void disp(){
        cout<<"base"<<endl;
        }
    };

class Der1:public Base{
    public:
    void test1(){
    cout<<"der1 test1"<<endl;
    }
};

class Der2:public Base{ …
Run Code Online (Sandbox Code Playgroud)

c++ multiple-inheritance

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

无法理解C程序的输出

C中有这个代码

int fun()
{
  static int num = 40;
  return num--;
}

int main()
{
  for(fun(); fun(); fun())
  {
    printf("%d ", fun());
  }
  getchar();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出结果如下:38 35 32 29 26 23 20 17 14 11 8 5 2

我无法弄清楚为什么程序不会继续打印超出2.即在底片中.不应该继续打印... -1 -4 -7 ....无限循环任何人都可以解释一下吗?

c output

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

无法理解析构函数调用序列

class base{
    public:
        ~base(){
             cout<<"base class delete"<<endl;
        }   
};

class derived:public base{
    public:
        ~derived(){
            cout<<"derived class 1 delete"<<endl; 
        }
};

class derived2:public base,public derived{
    public:
        ~derived2(){
            cout<<"derived class 2 delete"<<endl;
        }
};

int main(){
    derived2 h; 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

产生的输出是:

派生类2删除
派生类1删除
基类删除
基类删除

我知道析构函数是以构造函数的相反顺序调用的,但是我无法理解这个输出.任何人都可以解释这种行为吗?

c++ inheritance destructor

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

条件检入C中的循环

假设我有一个字符串"str".我的for循环如下:

 for(i=0;i<strlen(str);i++){

    //do stuff

 }
Run Code Online (Sandbox Code Playgroud)

问题:当检查条件时,i <strlen(str),是每次循环运行时计算的strlen(str)部分吗?或者它被存储并且仅在第一次计算?

c for-loop

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

解码运行时错误(SIGFPE)

这是spoj.com(http://www.spoj.com/problems/PRIC/)上的一个问题.我们必须检查序列号是否为:ai =(a(i-1)+1234567890)mod 2 ^ 31是素数与否,第一个数字是1.我的代码在下面给出(请尽量忽略笨拙.)基于eratosthenes的筛子.

问题:我们必须为序列打印"prime(1)or not(0)"至i = 33,333,333,我的代码完全适用于i(代码中的c3)值高达8000左右,之后(例如c3> 19000)它开始给出SIGFPE错误.现在我用Google搜索了错误,它与除法/ mod有关.但为什么代码适用于c3值高达9000但不超过?

c c++ sigfpe

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