1樓:匿名使用者
temp=str[i];一句並不是指標變數指向乙個指標,而是指標傳遞
注意str的型別是 char*即乙個指標陣列(當然因為是作為函式形參,所以實際上是char二階指標)
而str[i]的型別是char*(即乙個char指標)。temp也是乙個char指標,所以temp=str[i];得意思是,使temp指向與str[i]同樣的地方。
temp=str[i];str[i]=str[k];str[k]=temp;
三句總結起來就是指標交換,即str[i]和str[k]這兩個指標交換所指向的char,而temp就是乙個交換中間指標。指標交換與普通變數交換的原理是一樣的
2樓:
看來有個問題你必須得搞清楚:temp=str[i];叫把右邊的指標值賦給左邊的指標變數,不叫temp指標指向了str[i]指標,而是經temp=str[i];之後就使得指標temp和指標str[i]都「指向」了同一變數!這「同一變數」在**?
它就是str[i]指向的變數,單從temp=str[i];是看不出來的。清楚了意義,就清楚了temp=str[i];的用法是合法正確的。琢磨一下:
int a=4,*p,*q;p=&a(這叫指標p指向了變數a);q=p;。自q=p;之後,指標p和指標q就都指向了變數a,也就是指標p與q相等了……
指向多維陣列的指標問題,C語言中對指向多維陣列的指標陣列中多維陣列元素的間接定址問題
int multi 3 4 這是乙個二維陣列,具有3行4列 int ptr 4 定義ptr是乙個可以指向一行具有4個元素的行指標變數,即,例如,二維陣列multi 3 4 可以看成是3個一維陣列 每個陣列4個元素 疊加構成,則其陣列名就為multi 0 multi 1 multi 2 又是乙個一維陣...
c語言中定義指向字元的指標陣列chars5則
void sort char s 這裡接收到的是抄指襲針陣列,即 陣列中各元素 是指標位址,s是陣列首位址 s i 表示第i 1個元素 的值 位址,乙個字串的首位址,s i 表示這個字串的第乙個元素,是個字元 s i是第i 1個元素的位址,s i 是位址中的資料,等同於s i c語言中char是什麼...
C語言指標陣列的問題
關注位址型別,只要型別匹配就正確,下面描述中注意括號,用來斷句。int a 2 3 陣列型別是int 2 3 位址型別是 int 3 含義是 指向 含3個整數的一維陣列 的常量指標,該指標指向的位址為3個列的一行,所以陣列名本身就是行位址。int p 3 陣列型別是 int 3 含義是 含3個 整數...