❶ 為什麼一個指針變數可以存儲一串字元
你問:「為什麼可以直接賦字元串呢?」
問的很好。在你的例子檔首裡面"abc"是一個激改常量字元串,程序運行時常量字元串"abc"會得明蠢判到一個內存地址,char
*p="abc"的語意是將p指向這個地址。
因此,本質上說,正如你所理解的,的確是將地址賦值給指針。
❷ c語言中整型變數怎麼存儲字元串
這不是保存的字元串,是一個字元,由於c=getchar()中getchar 獲得的是字元的ascii值,然後返回給c,再putchar時是自動轉換為char輸出了。
這是循環獲取China的每一個字元。
❸ char類型變數能不能儲存字元串
不能!
%c只能存儲一個字元!
%s能存儲一串字元!
❹ 為什麼一個指針變數可以存儲一串字元
指針並不是真的檔雀可以存儲字元串,而是存儲了字元串首字母a的地址,其實每個字元串都是以'/0'為結束符,當用中蠢舉%s輸出時,賣碧在輸出前一個字元的同時指針會自動跳到下個字元的地址處,直到遇到'/0'停止,所以%s可以輸出一個字元串.
❺ C++中string類型變數存儲字元串的方法
一般的實現是類似於這個樣子.
char*
ptr;
//
內存指針,
用來保存字元串
size_t
cap;
//
動態內存的長度
size_t
len;
//
字元串的長度
實際的實現會更加復雜,
而且是模板.
賦值的時候
先檢查
ptr是不是
null,
如果是的話分配足夠的動態內存.
如果ptr不是null,
那麼檢查cap是否足夠放下字元串,
如果不足的話重新分配內存.
然後調用std::或者strcpy之類的函數,
把字元串復制到ptr中.
(1)它是通過動態分配內存給_Ptr來存儲字元串,還是通過其他的什麼方式來存儲字元串的?
動態內存.