C語言指標總結提高(指標操作字串)

2021-10-06 08:17:14 字數 2682 閱讀 5820

之前對字串初始化都是似懂非懂的,這裡做個總結。

int

main

(void);

char p2=

;char p3=

"hello"

;char p =

'3';

printf

("%c\n"

, p)

;printf

("%s\n"

, p2)

;printf

("%s\n"

, p3)

;printf

("hello\n");

system

("pause");

}

上面列出是比較常見的幾種宣告方式。

首先,p1這種方法都編譯通過,但是不能列印出來,就算列印了也是不正確的字元。必須後面加個』\0』。

最最常見是p3宣告方式。

還有就是字串只有乙個可見字元時只能單引號,而且輸出用%c,而不是%s

char p=

"hello"

;char

*p1 =

"hello"

;

這兩個都是指向同個字串。

但是 p是字元陣列 --------------p1是指標。

還有一點要注意,p1是常量指標,不能被修改。

也就是說不能執行以下操作:

char p=

"hello"

;p = p +

1;

編譯器會報錯,因為在釋放指標記憶體時,要保證完整。

發現一篇部落格寫的很好:字串

這位大哥總結的很完整。

#include

"stdio.h"

intmain

(void

)

字串遍歷有三種方式,其本質其實是一樣的。

#include

"stdio.h"

intmain

(void

)for

(i =

0; i <

strlen

(a); i++

)for

(i =

0; i <

strlen

(a); i++

)printf

("\n");

printf

("hello\n");

system

("pause");

return0;

}

第一種是我們最常見的遍歷,但是第二種才是編譯器的理解,所以按照第二種寫效率會更高。

從這個例子可以知道其實 *和是一樣的,只是表現形式不一樣。

#include

"stdio.h"

intmain

(void

) b[i]

='\0'

;printf

("%s\n"

, b)

;printf

("hello\n");

system

("pause");

return0;

}

這是不傳參的,要注意for裡面的判斷條件,當然也可以寫a[i] !=』\0』。

還有不要忘了在最後加個\0,不然會出錯。

#include

"stdio.h"

intstrcopy

(char

*a,char

*b)int i =0;

for(;*

(a + i)

!='\0';)

*(b + i)

='\0'

;return0;

}int

strcopy1

(char

*a,char

*b)int i =0;

while((

*to =

*from)

!='\0'

)return0;

}int

strcopy2

(char

*a,char

*b)int i =0;

while((

*to ++

=*from++)!=

'\0'

)return0;

}int

main

(void

)printf

("%s\n"

, b)

;printf

("hello\n");

system

("pause");

return0;

}

上面有三種不同拷貝方法,都需要學習,對提高**編寫能力有提高。

剛剛上面**最好每個形參過來,在每個被調函式裡面再申明變數把形參接過來,盡量不要去改變形參的值。

比如:

int

strcopy1

(char

*a,char

*b)printf

("%s"

,a);

return0;

}

這樣會出問題的,因為a的指向一直在變,到最後是不能得到相應結果的。

C語言指標總結

2012 03 07 07 22 標籤 c語言 分類 pointer c語言中的精華是指標,這也是c語言中唯一的難點。c是對底層操作非常方便的語言,而底層操作中用到最多的就是指標,以後從事嵌入式開發的朋友們,指標將陪伴我們終身。1.指標型別分析 分析指標,可以從變數名處起,根據運算子優先順序結合,一...

C語言指標總結

c語言中的精華是指標,這也是c語言中唯一的難點。c是對底層操作非常方便的語言,而底層操作中用到最多的就是指標,以後從事嵌入式開發的朋友們,指標將陪伴我們終身。1.指標型別分析 分析指標,可以從變數名處起,根據運算子優先順序結合,一步一步分析.int p 這是乙個普通的整型變數 int p 首先從 p...

C語言指標總結

指標分析 指標的型別 把指標宣告語句裡的指標名字去掉,剩下的部分就是這個指標的型別 指標所指向的型別 把指標宣告語句中的指標名字和名字左邊的指標宣告符 去掉,剩下的就是指標所指向的型別 在指標的算術運算中,指標所指向的型別有很大的作用 指標本身所佔據的記憶體區 用函式sizeof 指標的型別 可以測...