天天看點

字元指針、字元數組

1.字元指針

指向字元型資料的指針變量。每個字元串在記憶體中都占用一段連續的存儲空間,并有唯一确定的首位址。

即将字元串的首位址指派給字元指針,可讓字元指針指向一個字元串。

如下:

對指針取内容,是首個字元;對指針取位址,擷取到了指針的位址。

一般來說,不是要取内容*才能擷取到内容嗎?這裡直接輸出p1和p2就可以擷取到内容了?

對int型數字來說:

直接輸出p1和p2是輸出的位址,它們所指向的堆記憶體的位址,隻有用了取内容符号之後才會輸出所指記憶體的内容。

2.是否添加\0?

https://blog.csdn.net/wuwuku123/article/details/103608918

這種方法定義時,系統會自動在字元串的末尾加上字元串結束符,即 ‘\0’,:

這種方法定義時,系統會自動從未初始化的元素開始,将之後的元素賦為\0,如上面的數組str中的元素實際上是:'1','2','3','4','5','\0','\0','\0','\0','\0'

系統不會自動在字元串的末尾加上字元串結束符;

此時用sizeof()函數可以正确求出其所占的記憶體大小;但用strlen()函數不能正确求出其長度,因為strlen是通過\0判斷字元串結束的。

是以,采用該方法定義時,一般人為地加上\0,即char str[]={'1','2','3','4','5', '\0'};