关于空指针问题
这段程序为什么我把fn设置为VOID 类型了,在main()中打印c的时候结果还是会变化 求解答
最好可以把字符数组也分析一下
解释清楚了加分
#include<iostream.h>
void fn(char p[])
{
cout<<"in fn sizeof(p)="<<sizeof(p)<<endl;
p[0]='s';
}
void main()
{
char c[10]="abcdefgh";
cout<<"in main sizeof(c)="<<sizeof(c)<<endl;
fn(c);
cout<<c;
}
结果
in main sizeof(c)=10
in fn sizeof(p)=4
sbcd
Press any key to continue
[解决办法]
#include<iostream.h>void fn(char p[]) //不需要返回值,等同于 void fn(char *p),数组和指针在做函数参数的时候是一样的, //在做参数使用的时候,数组的作用相当于指针了。{ cout<<"in fn sizeof(p)="<<sizeof(p)<<endl; //sizeof(p) 计算的是指针占的空间 p[0]='s';}int main() // 返回一个int型变量{ char c[10]="abcdefgh"; cout<<"in main sizeof(c)="<<sizeof(c)<<endl; //sizeof(c) 计算的是数组占的空间 fn(c); cout<<c; return 0;}