读书人

有个有关问题小弟我理解不好麻烦大家

发布时间: 2012-02-29 16:44:10 作者: rapoo

有个问题我理解不好,麻烦大家给我点指点
1》。
#include<iostream>
using namespace std;
void test(char *p)
{
char *temp=new char[3];
temp="ab";
p=temp;

}
void main()
{
char p1[]="abcd";
cout<<p1<<endl;
test(p1);
cout<<p1<<endl;
}
因为是值传递,所以打印的东西都是abcd
2》。
#include<iostream>
using namespace std;


void test(char *p)
{
*p='k';
}
void main()
{
char p1[]="abcd";
cout<<p1<<endl;
test(p1);
cout<<p1<<endl;
}
为什么这个也是值传递,但是第二次打印改成了kbcd呢?


[解决办法]
void test(char *p)
{
*p='k'; //这个不是值传递,应该是指针传递,利用指针改变了字符串的第一个字符。
}

读书人网 >C++

热点推荐