欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

C++指針作為函數(shù)的參數(shù)進行傳遞時需要注意的一些問題

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

只有在被調(diào)函數(shù)中,對指針進行引用操作,才可以達到不需要返回值,就對指針指向的變量做出相應(yīng)的變化。

下面分析這樣兩個例子;

要求:定義并初始化兩個字符串變量,并執(zhí)行輸出操作;然后調(diào)用函數(shù)使這兩個變量的值交換,并且要求被調(diào)函數(shù)的傳值通過傳遞指針來實現(xiàn)。

程序1.1
復(fù)制代碼 代碼如下:

#include<iostream>
#include<string>
using namespace std;
int main(){
   string str1="I love China!",str2="I love JiNan!";
   void Exchange(string *p1,string *p2);
   cout<<"str1: "<<str1<<endl;
   cout<<"str2: "<<str2<<endl;
   Exchange(&str1,&str2);
   cout<<"str1: "<<str1<<endl;
   cout<<"str2: "<<str2<<endl;
   return 0;
}
void Exchange(string *p1,string *p2){
 string *p3;
 p3=p1;
 p1=p2;
 p2=p3;
}

輸出結(jié)果:


程序1.2
復(fù)制代碼 代碼如下:

#include<iostream>
#include<string>
using namespace std;
int main(){
   string str1="I love China!",str2="I love JiNan!";
   void Exchange(string *p1,string *p2);
   cout<<"str1: "<<str1<<endl;
   cout<<"str2: "<<str2<<endl;
   Exchange(&str1,&str2);
   cout<<"str1: "<<str1<<endl;
   cout<<"str2: "<<str2<<endl;
   cout<<endl;
   return 0;
}
void Exchange(string *p1,string *p2){
 string p3;
 p3=*p1;
 *p1=*p2;
 *p2=p3;
}

輸出結(jié)果:


分析:

通過這兩個程序的結(jié)果對比,程序1.1中的函數(shù)沒有達到交換數(shù)值的目的,而程序1.2達到了;

因為,在主函數(shù)中,主函數(shù)把str1和str2的首元素的地址,作為實參傳遞給了函數(shù)Exchange函數(shù);Exchange函數(shù)中的,p1用于接收str1的地址,p2用于接收str2的地址,這個過程是進行了值傳遞。

在程序1.1中,只是指針p1和指針p2的值進行了交換,對原來的字符串str1和str2并沒有什么影響;而在程序1.2中,是*p1和*p2的值進行了交換,而*p1就是str1它本身,*p2就是str2它本身,所以實際上是str1和str2進行了交換

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有