阅读手册页和一些代码并没有真正帮助我理解它们之间的区别 - 或者更好,当我应该使用 - perror("...")或者fprintf(stderr, "...").
为什么即使不构造类对象,这个C++程序也能成功运行?我们来看下面的代码:
#include<iostream>
using namespace std;
class Dopey
{
public:
Dopey() {cout << "Dopey\n";}
};
class Bashful
{
public:
Bashful() { cout << "BashFul\n";}
void f() { cout << " f \n";}
int i;
};
class Sneezy
{
public:
Sneezy(int i) {cout << "copy int \n";}
Sneezy(Bashful d) { cout << "copy Bashful\n";}
Sneezy(Bashful* d) {d->f();d->i=100;} //How could this be correct without
// constructing d !!!!!!!!
Sneezy();
};
class Snow_White
{
public:
Snow_White();
Dopey dopey;
Sneezy sneezy;
Bashful bashful;
private:
int …Run Code Online (Sandbox Code Playgroud) 请参阅以下代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[1000];
int i;
for(i = 1;i<1000;i++)
{
a[i] = 5;
}
printf("%d\n",strlen(a));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果是0,为什么?任何解释将不胜感激.
为什么C中的main()函数可以正确终止,即使不使用exit或return?
例如:
#include<stdio.h>
int sum(int a,int b)
{
return (a + b);
}
int main()
{
int a=10;
int b=5;
int ans;
ans=sum(a,b);
printf("sum is %d",ans);
}
Run Code Online (Sandbox Code Playgroud)