当前位置:编程学习 > C/C++ >>

C++代码方面的问题

#include "iostream.h"
#include "stdio.h"
void Change_1(char& k1,char &k2)
{
 char k1[]="good";
    char k2[]="hello";

}
void main()
{   char i[]="hello",char t[]="good";
 char *p1=&i,*p2=&t;
    Change_1(*p1,*p2);
 cout<<*p1<<*p2;
}
这是我写的一个程序,问题颇多。我想的是用引用来调换两个字符串的位置,我是个初学者,请高手帮我。并帮我指出错误!谢谢

追问:

如果我想在主函数中用指针 ,应该怎么用啊?还有那个COUT那块你的解释我不是很清楚,请帮我解释一下,谢谢

答案:

 

char *p1=&i,*p2=&t;  有问题

p1,p2是字符指针,但你却将 &i &t(这两个类型是char (*)[] 即指向数组的指针,你可以理解为行地址)赋予pi,p2,明显是类型不对嘛!

而在Change_1(char& k1,char &k2) 形参是字符的引用,但你却与char (*)[] 类型绑定。

而且在函数体内  k1,k2 与形参重名。另外 在这个函数中你仅仅是对 字符数组来赋值。

而且在输出的时候 cout是 命名空间std中所定义   使用时要用作用域运算符 std::cout

或 using 指示 即 using namespace std; 

 

你对指针理解还不够,还是使用string来来存放字符串吧!这样你容易理解。

 

//void swap( basic_string &str );

//swap()函数把str和本字符串交换。

#include<iostream>
#include<string>
using namespace std;

void Change_1(string &k1,string &k2)
{
    k1.swap(k2);
}

int main()
{
    string i="hello", t="good";
    cout<<i<<" "<<t<<endl;
    Change_1(i,t);
    cout<<i<<" "<<t<<endl;
}

char开始的时候是空值NULL的,才可以付值,但是循环没有啊?我只看到你是判断字符。

上一个:高手帮忙改改C++代码
下一个:帮忙看下C++代码!!!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,