1樓:網友
失控棗圓指標根本就沒辦法使用!使用失控指標後果是無法**的猜棚!
應該避免出現失穗巖則控的指標,任何指標,一旦不指向任何位址,則應該給他賦值為null.這是乙個很重要的程式設計規則,一定要記住啊。
2樓:暢景彰
行指標是一種形象的說法,比如現在有x行x列的**。p指標指向第一激芹行,行指標特點就是比如p+1,那麼p就指向下一行的首位址。普通指標+1 就指向下乙個,注意是下乙個位址。
行指標是指向下一行。
那麼二維陣列可以可分為行和列,那麼要找到每乙個陣列就要通過哪行和哪列查詢,a[10][10]中第乙個小標表示行,第坦銷二個下標表示列,那麼 a[1],a[2]表示對應行的指標,記得在二維陣列中約定a[1],a[2]表示的是指標,在一維陣列中a[1],a[2]表示的是元素,我知道你雲裡霧裡的讓鉛遊這裡比較難記住既可以了,不要問為什麼,記得這是語法規定的就可以了。
c 語言行指標與列指標詳解
3樓:科創
首先我們來看下面的**。
上面這部分**輸出的結果是什麼呢?
行指標:指的是一整行資料,不指向具體的元素。
列指標:指的是一行中某個具體元素。
我們可以理解成為行指標的具體元素,行指標理解為列指標的位址 他們可以相互的變化。
行指標 列指標。
列指標 行指標。
講解下上面的**。
a是這個「特殊的」一維陣列的名稱,也就是首位址,也就是第乙個元素的位址,也就是第一行的首位址,是指首行一整行,並不是指某個具體元素。那麼我們稱之為「行指標」,既然我們知道了a是行指標那麼在我們所學習中的乙個指標加1就是偏移乙個單位,而a的單位是一行,所以p=a+1 即p指向了第二行,即p=a[1].
b = p+1,p是存放的第二行的首位址,那麼*p即拿到了第二行的首個元素的位址,那麼 *p+1就是便宜乙個int,因為此時*p就是乙個int指標。所以b=*p+1 即 b=&a[1][1]
c = a + 1; 根據上面所說的c=&a[0][1].
printf("a=%d ",a));這個就沒啥好說了 **a) 等同於 a[0][0].
根據上訴所說 輸出結果。
所以列指標指向的是某一行的具體元素,上面例子中的b和c
行指標指向的是指向一整行資料,不是指向具體的某個具體的資料。上面例子的a和p
行指標和列指標多應用於矩陣,在實際普通開發中比較少運營到,但是可以幫助對指標更深入地瞭解。
關於行指標的
4樓:網友
在這裡是提領操作符,作用是提取位址裡面的內容。
c[4][5]是個二維陣列,(*cp)[5]是乙個一維指標陣列(陣列元素為指標)。
所以cp是凱寬一維陣列首位址p[0],cp+3便是cp[3]的位址,所以*(cp+3)為cp[3](乙個指標),因此a錯;
同理,*(cp+2)是cp[2](指標),*cp+2)是提取指標(位址)cp[2]的芹瞎內容,即為c[2][0].因此b對。
希望對你有幫助,盯首亮~
5樓:網友
cp是指向含高仿虧有5個元素的一維陣列的指標變數,這大迅裡面把c賦給選項指的是戚神c[0][2];而a指向是第4行起始的位址,並不能得出你所說的。
6樓:匿名使用者
cp+3是碧鎮伍二旅胡維陣列c第4行的位址,*(cp+3)是元素c[3][0]的位址,與cp+3值相同,但型別不同。前者是int (*5],悔或後者是int *。
7樓:線性控制
a取出來的是陣列int[5]的首位址,它還是乙個指標,**cp+3)這個才是元素。
c語言 什麼是行指標 求大神詳細解釋。
8樓:秋日傳奇
我們在使用c語言進行編寫程式的時候,就一定會使用上指標,指標的操作是編寫程式的乙個點。
如何更好的使用指標,將是我們進行更好的書寫程式的關鍵。
這裡,就分享一下自己在使用c語言程式設計過程中,對於指標的理解:
我們知道,c語言中的型別有int,char,bool(這個不常用),一般我們使用int,char就可以滿足一般的型別需求的,如果對於變數的長度過大,就是用long ,float,double,關於各個型別使用的的長度問題,可以使用sizeof(int)或者sizeof(long)來檢視各個型別,在系統中的小。
而指標就是乙個8個位元組(64系統)。
我們需要乙個變數,來儲存位址,這個變數的值是位址,但是我們可以通過修改變數的值,來不斷的改變位址,但是,我們如果需要改變該個位址的值的話,就需要,對位址的值進行修改,而不改變位址。
int a = 10;
int *p ;
p = a;
p =11;
a=?這裡我們看到,p 是乙個變數,我們使用p來儲存變數a的位址,這是,我們使用*p對於這個變數進行賦值,那麼a的值最後,是多少呢,結果是11,因為我們使用*p賦值,就相當於a=11,賦值效果一樣的。
3:指標的指標,是面對於指標的變數:
我們說,指標的指標的時候,就有點不清楚了,到底怎麼區分指標和指標的指標呢。
char *p;
char **pr;
pr = p;
我們這樣看就清楚了一點,char *(pr); pr是乙個儲存的值為指標的變數,pr就是儲存上個變數位址的變數。整合起來就是,pr是乙個儲存的值為指標的位址的變數。
這樣,我們就基本,對於指標有乙個直接的瞭解了。
C語言指標問題,行指標的賦值與取值
1.p a 1可以。表示p指向陣列a的第1行。2.p a表示p指向陣列a的第0行。3.p a.則 p是陣列a的首地址,這個地址型別是int 4.可以定義成 p 4 但不能p a。因為它們型別不一致。5 p的值與型別與a 0 相等。 菜刀剁菜鳥 1.正確 2.p a是表示p指向陣列a的第0行 p指a ...
c語言的行指標與元素指標有什麼區別
先舉個例子吧,先定義乙個二維陣列int a 3 4 陣列名a就是乙個行指標,a 0 就是乙個列指標 就拿這個例子說吧,a和a 0 雖然位址相同,可是指標指向型別卻不同,對指標進行 1運算,顯然得到的結果是不同的,因此a 行指標 1中的 1 代表一行中全部元素所佔的位元組數,而a 0 1,這裡的1則是...
有關c 中指標,行指標和列指標應怎麼區分,請舉例 詳細說明應該怎樣運用
int a 10 b 5 5 int p1 a 這裡p1是你所說的列指bai針dup1 1指標指zhi向daoa 1 int p2 b 這裡p2相當於行指標,它指向的是數內組b 5 5 的首行b 0 p2 1使它容的指向加了一行,指向b 1 int p3 b 0 這個相當於p1指向的是一位陣列的b ...