A. c語言二分查找運用指針
1.你以為是傳一個數組a[]對吧。其實這里將一個指針p指向這個數組a,這時候p和a是一樣的。只是用指針形式比較嚴謹,這里用a[]也沒關系,因為兩者是一樣的。
2。b[14]
=
{0},是把整個數組初始化所有元素都為0,注意只有寫成0是這樣的,如果寫成b[14]={1},那麼只有b[0]也就是b的第一個元素是1,其它的是任意的
3。輸出地內容是傳入數組a中值和key一樣的元素的下標,如果找不到就返回0。
為什麼?這是二分法查找的核心呀。二分法查找的數組必須是排好序的.
比如
1
3
7
8
9
10
15那麼
你要搜一個數3,首先就從中間開始搜,那麼
比中間這個數大的就會在右邊,小的在左邊,這樣
每次查找都會讓區間縮小一半,這就是二分法查找的核心。具體的你可以去搜一下二分查找。這就不再多言了。
B. c語言的二級指針如何初始化了
二維指針初始化分配空間分成兩步操作:
先分配二維指針的行數
再分配每行的數據空間
如:
int**p;
intn=10;
intm=100;
p=(int**)malloc(n*sizeof(int*));//分配n行
for(i=0;i<n;i++)
{
p[i]=(int*)malloc(m*sizeof(int));//為每行分配m個數據空間
}
C. c語言關於二級指針
實參看情況比如
1 .char array[10][10];
則可以將array 傳入。
2 當然也可以 char **array;然後自己申請內存。
接著將array傳入。
3 或者char *array;
將&array傳入。
當然要看你是什麼用法。
從你的函數來看你估計是要傳一個二維數組首地址,也就是第一個。
D. c語言二級指針
這個還是蠻簡單的。
首先初始化兩個二位數組,tu 和 shu
tu賦初值為 * shu賦初值為 0
最後是取隨機數x,y 坐標(取lei次) ,將shu[x][y] 的值 置為1
如果該坐標上已經賦值過為1 了,就重新取隨機數賦值。
E. C語言中的二級指針到底是啥東東啊
要理解二級指針,首先要理解指針變數,指針對於windows系統來說,就是某個虛擬內存地址的編號,這個虛擬內存的編號對應著程序需要的數據。
二級指針,簡單來說就是指向指針變數的指針,二級指針對應的數據就是一個一級指針變數的地址值(編號)。
關於指針的理解,建議看看80X86匯編的定址。
F. 關於C語言中的二級指針
二級指針就是指針的指針,也就是指向一塊內存的地址的地址。例子如下
int i = 23;
int *pi = &i;
int **ppi = π
cout << i << ' ' << *pi << ' '<< **ppi << endl;
數組就是存放多個變數的一塊內存。該內存塊的大小取決於該數組中變數的類型和個數,
G. C語言二級指針
因為a是二級指針,因此,可以把它看成為二維數組,a[0],a[1],分別表示維數首地址,a[0]第一維首地址,a[1]指的是第二維首地址
H. C語言二級指針問題
在函數參數傳遞中只有值傳遞。
要看傳遞的值是什麼,如果是一個指針的值那麼它就是地址了。否則就是普通的值。
你這里為什麼要用二級指針呢?你認為p的值已經是一個地址了所以直接傳它的值就可以搞定了。錯誤就在這里。你想想你為什麼還要為p開辟空間。如果p的值已經是你要的地址了那還需要開辟空間嗎。所以其實這里要麼p的值是null要麼是一個隨即值,要麼是一個地址但不是你要的。那麼你把這樣的值傳過去有什麼用呢。所以這里你要弄清楚我們真正要修改時是哪個的內容。是p所指向的那個內存嗎。還是p本身,顯然這里要該是p本身的內容。那麼你只把p的值傳給一個函數這個函數能修改p的內容嗎?顯然不能了。
所以我們得把p本身的地址傳過去。然後才能修改該地址的內容。所以就不得不用二級指針了。