const char 指向的是乙個字元,還是乙個字串?

時間 2021-05-31 22:01:10

1樓:Yan Ni

它是個指向常量的指標。

你對它解引用,就指向乙個字元;

你對它進行字串的操作strcpy/strlen等等,它就是乙個字串。

而且,C語言並不保證這個const char*一定能指向乙個字串,你可以隨便指,然後C語言就會認為從這裡一直到它遇到的第乙個\0就是它所指的字串。

2樓:Sunchy321

指向乙個字元。

不是很準確的說法「指向乙個字串」意思是指向這個字串的字元所在陣列的第乙個元素。

雖然我估計根本就不可能引發問題。。

3樓:嘿嘿

const char*可以指向任何位址,所指位址都會按照字串的方式進行解析。

簡單的說,你可以把乙個int*費勁的轉換成const char*,這一步是沒有問題,但是問題是當我讀取這個const char*,毫無疑問的,內容是錯的:)

再回到題目,const char*能指向乙個字元嗎,它指向的當然是乙個字元這也是為啥你拿到乙個char* 能對他進行*操作。而且你單純的進行*p得到的也是乙個字元。那麼他指向的是乙個字串嗎,如果你使用了一些需要提供字串的庫函式的話,他需要乙個以'\0'結尾的字串。

比如printf。所以呢,const char*,可以指向乙個字元也可以指向乙個字串。只是如果只是指向乙個字元的話,會費時費力(逃。

然後呢,字串跟彙編並沒有什麼關係,那啥,彙編的字串結尾符是$,跟樓主問題並沒有什麼聯絡(逃

在指向行的指標前面加乙個 就轉換為指向列的指標,為什麼啊?

心裡藏著小怪獸 其實不需要理會行和列的說法,反正說到行和列我也懵逼,以下以三維陣列為例以我的角度來理解下這個問題,可能有點答不對題。陣列宣告如下 假定是int的儲存大小為4個位元組 int arr 10 8 3 1.首先無論是幾維陣列,其都代表一段連續的記憶體,只不過為了能夠描述一些問題強制分了維度...

C unique ptr只能有乙個指向某個裸指標,這是怎麼實現的?

dwing 只能防君子不防小人 autop std make unique autoq std unique ptr p get 想要更嚴密方案可以選Rust. rkko 過載拷貝建構函式和等號執行算符將原指標資料move到新指標上,原指標在move時就直接失效了,這樣永遠只存在乙個指標指向物件。 ...

C 指標「指向緊鄰物件所佔空間的下乙個位置」是什麼意思?

張擘 作者寫這幾種情況表示的是指標在生命週期內,所有可能的狀態,它的值會是哪些,就這麼簡單。eg int int 那麼這個指標 解引用 就是 就是指向緊鄰物件所佔空間的下乙個位置,但是他解引用會是什麼呢,不確定的。 李小明 尾後迭代器那種.就比如int ia 100 取乙個陣列的最後元素的後乙個指標...