先上**
#include
using
namespace std;
void
arrfunc
(int a)
;void
normfunc
(int a)
;int
main()
;int b =5;
arrfunc
(a);
cout << a[0]
(b);
cout << b;
return0;
}void
arrfunc
(int a)
//對 陣列進行操作,函式並不返回任何值
void
normfunc
(int a)
//對普通變數進行操作,函式並不返回任何值
輸出結果
10
5
原因:陣列是指標的一種表現形式
對」指標型「變數的任何操作都是直接作用於相應位址,位址中的值會被直接改變
對普通變數的操作,只會在函式內部(區域性)有效,可以理解為是對整型普通變數b的臨時快取進行操作,函式結束後,快取被釋放,變數本身的值並不會改變(有點類似於python的切片)
整型陣列宣告與定義
當宣告陣列int arr 9 定義陣列,輸入資料截止到下標arr 6 系統自動給arr 7 arr 8 賦值為 任意值 int x 輸入資料 int i 0 記錄位數 int a 5 儲存逆序 int temp printf 輸入資料x scanf d x while x 100000 x 0 輸出...
指標與一維整型陣列
1 通常情況下,定義乙個陣列,int a 5 定義乙個指標,int p a a與p都表示 a 0 而 a表示的位址與a和p在數值上一樣 但a和 p都表示四位元組記憶體塊的位址 而 a表示整個陣列的位址,有20個位元組 p 1將位址值加4,而 a 1卻將位址值加20.那麼關於 a如何定義呢?即陣列指標...
無符號整型與有符號整型的比較
喵哥最近遇到乙個問題,比較兩個數的時候經常會出現很嚴重的bug,比如 unsigned int a 0 int b 2 if a b b 1 cout b endl 乍一看這段 輸出的應該是 2,0肯定不會小於 2嘛,但是事實上,b 1 這行 是會被執行的。如果大家對算術轉換比較熟悉的話,應該會想到...