写出程序运行后的输出结果
#include<iostream.h>classA{inta;public:A(intaa=0):a(aa){cout<<"ConstructorA!"<<a<<end...
#include<iostream.h> class A{ int a; public: A(int aa=0):a(aa) { cout<<"Constructor A!"<<a<<endl; } }; class B:public A{ int b; public: B(int aa,int bb):A(aa),b(bb){ cout<<"Constructor B!"<<b<<endl; } }; void main() { B x(2,3),y(4,5); }
展开
1个回答
展开全部
#include <stdio.h>
struct stu
{
int a,b;
char *ch;
};
void f1(struct stu parm);
main()
{
struct stu arg;
arg.a=2000;
arg.b=200;
arg->ch="abcd";//ch没有分配空间,是野指针,很容易出错你要么先malloc要么别定义
//指针直接定义一个数组
f1(arg);//传参数只是把arg复制了一份传给函数,在f1中改变参数值时原值并不改变
//所以会出现这种情况,
//解决方法:将arg的地址作为参数传递,这样就不会有问题了
printf("%d,%s",arg.a,arg.ch);
}
void f1(struct stu parm)
{
parm.a+=parm.b;
parm.ch[2]='x';
printf("%d,%s",parm.a,parm.ch);
}
struct stu
{
int a,b;
char *ch;
};
void f1(struct stu parm);
main()
{
struct stu arg;
arg.a=2000;
arg.b=200;
arg->ch="abcd";//ch没有分配空间,是野指针,很容易出错你要么先malloc要么别定义
//指针直接定义一个数组
f1(arg);//传参数只是把arg复制了一份传给函数,在f1中改变参数值时原值并不改变
//所以会出现这种情况,
//解决方法:将arg的地址作为参数传递,这样就不会有问题了
printf("%d,%s",arg.a,arg.ch);
}
void f1(struct stu parm)
{
parm.a+=parm.b;
parm.ch[2]='x';
printf("%d,%s",parm.a,parm.ch);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询