「行參為引用」的思考

2021-07-09 11:40:06 字數 1266 閱讀 8290

1.乙個簡單程式判斷知否含有大寫字母

#include  using std::cout;	using std::cin; using std::endl;

#include using std::string;

#include #include using std::vector;

#include using std::begin; using std::end;

#include using std::size_t;

#include bool judge_capital( string &s)

return false;

}int main()

else

return 0;

}

初看之下這個程式沒有問題,而且執行也正確,可是其中卻隱藏了很深的陷阱;

int main()

else

return 0;

}

會報錯,無法判斷常量字串是否含有大小寫。再看

int main()

else

return 0;

}

常量引用無法賦值給變數引用,所以會報錯,因此盡量使用常量引用。

bool judge_capital( const string &s)

return false;

}int main()

else

return 0;

}

在只需要讀取物件的情況下,改為常量引用可以避免許多的麻煩。

2.把大寫字母改為小寫字母。

#include  using std::cout;	using std::cin; using std::endl;

#include using std::string;

#include #include using std::vector;

#include using std::begin; using std::end;

#include using std::size_t;

#include bool judge_capital(const string &s)

return false;

}void change_lower(string &s)

}int main()

在需要修改物件值的時候,使用普通引用。

C 什麼時候使用引用行參

1 對於不修改傳入引數的函式 如果傳入資料很小,例如基本資料型別或者很小的結構體,使用值傳遞。如果傳入陣列,使用const指標。如果傳入較大的結構體,使用const指標或者const引用。如果傳入的是物件,使用const引用。2 對於修改傳入引數的函式 如果傳入基本資料型別,使用指標。如果傳入陣列,...

行轉列的思考

最近遇到乙個行轉列的問題,給定乙個時間段,統計每天每個車的簽到情況,用動態拼接的方法實現,受varchar 8000 的影響,拼接的sql語句不能太長,遇到這種動態列頭的問題,這種方法肯定不是很好,希望有高人指點新招 建立車資訊表 go ifnot exists select 1from sysob...

引用形參 指標形參的使用

引用形參 指標形參可以改變主函式內的實參值 includeusing std cin using std cout using std endl 形參其實是在把實參傳遞給子函式的時候定義了乙個新的變數,但是這個變數的值和實參相等,所以在子函式裡無論怎麼修改都不會影響到呼叫它的函式的實參的值 int ...