任何人都可以解释一下这段代码是如何工作的?
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)
为何输出?
我无法在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秒(秒))
假设我有:老虎,狮子,长颈鹿.
如何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上找不到合适的答案.
有这个代码:
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中有这个代码
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 ....无限循环任何人都可以解释一下吗?
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删除
基类删除
基类删除
我知道析构函数是以构造函数的相反顺序调用的,但是我无法理解这个输出.任何人都可以解释这种行为吗?
假设我有一个字符串"str".我的for循环如下:
for(i=0;i<strlen(str);i++){
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
问题:当检查条件时,i <strlen(str),是每次循环运行时计算的strlen(str)部分吗?或者它被存储并且仅在第一次计算?
这是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 ×6
c++ ×3
arrays ×1
character ×1
codeblocks ×1
destructor ×1
for-loop ×1
fork ×1
inheritance ×1
linux ×1
linux-mint ×1
output ×1
sigfpe ×1
string ×1