读书人

关于空指针有关问题

发布时间: 2012-11-07 09:56:10 作者: rapoo

关于空指针问题
这段程序为什么我把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

[解决办法]

C/C++ code
#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;} 

读书人网 >C++

热点推荐