北京有哪些網(wǎng)站建設(shè)公司百度搜索技巧
1.函數(shù)名是一個(gè)指針,保存函數(shù)地址入口。函數(shù)名是函數(shù)的入口地址。函數(shù)的入口地址稱為函數(shù)指針。
2.傳參--本質(zhì)是創(chuàng)建副本 (1)實(shí)參與形參
(2)值傳遞,指針傳遞,引用傳遞 指針傳遞本質(zhì)是值傳遞。 C語言無引用傳遞,引用傳遞是C++的。
3.函數(shù)調(diào)用--也可以理解為是創(chuàng)建副本
指針與數(shù)組
數(shù)組(Array)也是一種復(fù)合數(shù)據(jù)類型,它由一系列相同類型的元素組成。 數(shù)組元素在內(nèi)存中連續(xù)存放。
在 C 語言中,數(shù)組名是一個(gè)指向數(shù)組第一個(gè)元素的指針常量,也就是說,它存儲(chǔ)的是數(shù)組第一個(gè)元素的地址,并且不能被修改。
數(shù)組指針和指針數(shù)組
數(shù)組類型的指針
指針類型的數(shù)組
一維數(shù)組: 一維數(shù)組的數(shù)組名其實(shí)是保存數(shù)組中第一個(gè)元素的內(nèi)存地址的指針,因?yàn)榈谝粋€(gè)元素是int類型,是一個(gè)int指針常量。
可以用指針模擬分配數(shù)組。
高維數(shù)組:以二維數(shù)組為例
二維數(shù)組在內(nèi)存中不是表格存放,而是連續(xù)成行放。 在c/c++中,多維數(shù)組的構(gòu)成其實(shí)是通過數(shù)組嵌套構(gòu)成更高維的數(shù)組,比如,二維數(shù)組中每一個(gè)元素都是一個(gè)一維數(shù)組。 一般認(rèn)為C++中數(shù)組只有一維,二維數(shù)組和多維數(shù)組的本質(zhì)還是一維數(shù)組,其元素是低一維的數(shù)組。
高維數(shù)組:以二維數(shù)組為例 二維數(shù)組名不是二級(jí)指針。二維指針是變量,而二維數(shù)組名是二維數(shù)組的首地址,也就是一段連續(xù)內(nèi)存空間的首地址,本質(zhì)上是一個(gè)指針常量。 結(jié)合指針理解,數(shù)組名可以理解為 數(shù)組指針類型的指針常量。
在c/c++中,多維數(shù)組的構(gòu)成其實(shí)是通過數(shù)組嵌套構(gòu)成更高維的數(shù)組。 比如,二維數(shù)組中每一個(gè)元素都是一個(gè)一維數(shù)組,五維數(shù)組的每一個(gè)元素都是一個(gè)四維數(shù)組。 那么,數(shù)組名是指向首元素的指針,于是二維數(shù)組名就是一個(gè)指向一維數(shù)組的數(shù)組指針(int (a)[x]),同樣的,多維數(shù)組名其實(shí)就是一個(gè)指向維度-1的數(shù)組指針(int(a)x[x]…)。
int a105; 關(guān)于a,&a, a,(&a):數(shù)值一樣,含義不一樣。 &a中:a理解為代表整個(gè)數(shù)組空間,&a含義是整個(gè)數(shù)組空間的地址,&a的值和首元素地址的值一樣。因此 &a和a的值一樣。所以(&a)就變成了取整個(gè)數(shù)組中的值,顯然不可能。但是實(shí)際操作過程中,這樣寫不會(huì)報(bào)錯(cuò),是因?yàn)?/em>(&a)取整個(gè)數(shù)組的值,但是取不了多個(gè)值,就得到了這多個(gè)值的首地址。其實(shí)也可以把(&a)中的a理解為地址常量,&相互抵消。因此(&a)與a數(shù)值一樣。a取首元素的值,首元素是個(gè)一維數(shù)組,取不了多個(gè)值,就得到了這多個(gè)值的首地址。
int (p)[105]=a; int (p)105=&a; int p=a; int (p)[105]=(&a);
可以用二級(jí)指針模擬二維數(shù)組