第六章 函數
- 傳入引用參數
吐槽:c++ primer 這本書感覺不行,關於很多概念講不清
同時代碼存在不具備連續以及調測性
#include "a.hpp"
#include<iostream>
#include<vector>
using std::string;
using std::cout;
using std::endl;
using namespace std;
//using namespace string;
string::size_type findchar(const string &s ,char c,string::size_type &occurs)
{
auto ret = s.size();
occurs = 0;
for (decltype(ret) i = 0;i <s.size(); i++) {
if(s[i]==c)
{
if(ret == s.size())
{
ret =i;
cout<<" ret ="<<ret<<endl;
}
++occurs;
}
}
return ret;
}
int main()
{
string str("liu chuan wu");
string::size_type count ;
string::size_type &sount = count;
string::size_type ret= findchar(str,'u', sount) ;
cout<<sount<<endl;
cout<<ret<<endl;
}
findchar 函數必須傳入引用
ret =2
3
2
Program ended with exit code: 0
指針版本
#include<iostream>
#include<vector>
using std::string;
using std::cout;
using std::endl;
using namespace std;
//using namespace string;
string::size_type findchar(const string s ,char c,string::size_type* occurs)
{
auto ret = s.size();
*occurs = 0;
for (decltype(ret) i = 0;i <s.size(); i++) {
if(s[i]==c)
{
if(ret == s.size())
{
ret =i;
cout<<" ret ="<<ret<<endl;
}
++(*occurs);
}
}
return ret;
}
int main()
{
string str("liu chuan wu");
string::size_type count =0 ;
//string::size_type *sount = &count;
string::size_type ret= findchar(str,'u', &count) ;
cout<<count<<endl;
cout<<ret<<endl;
}
結果是相同的