關於c語言字串中sizeof指標的問題

2021-08-10 05:14:40 字數 784 閱讀 4460

#include

#include

#include

int main()

執行後其結果為:

1 2 3 4 5

2 3 4 5

1004410

9process returned 0 (0x0)   execution time : 0.200 s

press any key to continue.

只有定義字元陣列的頭指標裡面含有這個陣列字元資訊,比如陣列長度,其他的都特定指數組中的乙個元素。

printf(「%s」, p)是把指標p指向的內容以及他後面指向的內容截止到' \0'全部列印出來。

fgets(ch, 100, f1)是把f1的一行最多99個字元放入字元陣列ch中,其中第100個字元是'\0'。

如果這裡把 字元陣列改為字元指標:

#include

#include

#include

int main()

執行後其結果變為了:

1 2 3 4 5

2 3 4 544

4109process returned 0 (0x0)   execution time : 0.194 s

press any key to continue.

由此可見 想知道乙個串的大小,如果用sizeof的話只能是字元陣列的首位址ch,雖然p指向ch,但p不包含ch中的資訊,sizeof(p)是乙個字元的大小,並非這個陣列的

我們可以用strlen來確定字串的長度(10是包含了空格和換行符的,檔案中有換行)

關於C語言字串

一 c語言中沒有獨立的字串型別。c語言中的字串其實是一串在記憶體中連續的字元 且有乙個結束標識 0。0 0 含義 字串的結尾標識。要保證字串末尾要有 0 二 三種定義方式 1.字元陣列 儲存在棧區 棧區可以修改 注意 a.保留足夠的空間用於儲存 0 b.字元陣列可以直接用 字串字面值 直接初始化 c...

關於sizeof對字串計算

1 include 2 include 3 include 4 int main int argc,char argv 5 13 printf array sizeof sss is d n sizeof sss 14 printf array strlen sss is d n strlen ss...

關於字串的sizeof 和strlen

wykxldz 這樣的乙個字串的型別是const char 所以我們在申明字串的時候可以使用這樣的形式 const char str 123456 printf lu n sizeof str printf lu n strlen str 控制台顯示的是8,6 注 指標佔的位元組數是8 其實我們也是...