利用函式的形參傳遞變數
在自己的印象中,利用乙個指標變數作為形參就能夠,函式執行後就能夠更改此變數的值,一般來說這是正確的,但是忽略了前提條件,指標變數的空間開闢必須在傳遞引數之前,如果我硬要在函式中開闢呢?下面慢慢講解,大神可飄過,不熟練的看看,菜鳥認真在編譯器中實踐一下。
1.普通的正確形式
void hello(int *a)
void main()
void main()
程式會報錯,cout<<*i;這步出錯,訪問異常,這是為什麼呢?開始時i的位址是空的,利用(int *a)傳遞i實際上相當於執行了int *a=i,只是單純的給a賦值,而沒有實際的進入函式內部,故hello執行完之後i始終是null,所以會出錯。有人可能會注意到,用引用會不會也會出現這種問題呢,我們用引用引用的一般都是物件,物件時開闢好空間的,不會出現這種問題,不信可以自己改了試試。
3.沒有在傳參之前開闢空間,而在函式內部開闢空間,採用指標的指標或指標的引用(我把指標位址的位址傳進去不就可以了麼)
void hello(int **a)//指標的指標
void main()
void hello(int* &a)//指標的引用
void main()
注意使用方式。
當然了我這裡所列舉的是簡單的小例子,也算淺顯易懂,但這些變數換成了字串,結構體等得融會貫通才行。
筆試被鄙視之細節問題一
利用函式的形參傳遞變數 在自己的印象中,利用乙個指標變數作為形參就能夠,函式執行後就能夠更改此變數的值,一般來說這是正確的,但是忽略了前提條件,指標變數的空間開闢必須在傳遞引數之前,如果我硬要在函式中開闢呢?下面慢慢講解,大神可飄過,不熟練的看看,菜鳥認真在編譯器中實踐一下。1.普通的正確形式 vo...
被 公司鄙視之後!
size large 之前參加了 5月7日的產品設計師的筆試,至今已有17天按理說 早就超過了 刷人的時間,但是我一直覺得還會有機會。一直覺得還會有通知的,一定會有。通知確實有,不過沒有我的,也就是到現在為止,我已經被 公司給鄙視了。不過,跟前上一次面技術不同,被鄙視後並沒有對我有太大的觸動。然而,...
incrediBuild的乙個細節問題
incredibuild 最近搞的高通方案編譯要花好多時間,用連機編譯方式,工程是makefile檔案,是用的是該工具的xge引擎。環境 多個agent和乙個coordinator一起,coordinator負責協同工作為server,agent是執行者。工作 當某個agent提交編譯,coordi...