C 字元指標的正確賦值和輸入輸出

2021-10-05 16:02:54 字數 890 閱讀 4906

如何給乙個字元指標 char *p 賦值?我看到很多部落格上面寫的是這樣操作:

char *p; 

p="hello";

在c語言中這種方式確實是被允許的,但是到c++11中會給出警告(報錯):

錯誤提示的意思是我們將乙個字串常量繫結位址繫結到了乙個非常量字元指標上,c語言中隱式轉換成了char* ,但是c++就拒絕了這個操作,讓人自行承擔這個後果,所以我們在定義前加上乙個const 即:

const char *p = "this is the address returned by the string";
這樣就沒什麼問題了,但是有時候我們們需要在類中定義,在外部函式中修改,這時我們模擬操作先宣告再賦值;

const char *p;

p = "kaka";

雖然 p指向的物件是const,即不能通過 *p = 「other object」 來修改物件 ,但是指標 p本身不是常量,依然可以通過更換其指向的位址來達到修改其指向的值

const char *p;

p = "kaka";

p = "other objects";

cout如果是初學者可能不明白為什麼 cout<> a;

b = a;

cout << b << endl;

結果:

字元輸入 輸出和輸入驗證

本屆講解通用標準的i o函式的使用說明 單字元i o getchar 和putchar 這個是單字元每次只處理乙個字元,緩衝區 ansi c和後續的c標準都規定輸入時緩衝的,最初的k r c吧這個jue決定權交給了編寫者。一些計算機不允許無緩衝輸入,但又的計算機支援,如 ibm pc 支援 通過co...

字元輸入 輸出和輸入驗證

注釋 重定位讓你能夠用鍵盤輸入程式檔案,程式需測試檔案的末尾。重定向是乙個命令概念,因為要在命令列輸入特殊的符號發出指令。file eof.c 開啟乙個檔案並顯示該檔案 include include 為了使用exit int main void getc fp 從開啟的檔案中獲取乙個字元 whil...

字元輸入 輸出和輸入確認

緩衝分為兩種 完全緩衝 緩衝區滿時被清空 內容發往目的地 行緩衝 遇到乙個換行字元時將被清空緩衝區 低階i o是使用宿主作業系統的基本工具來處理檔案,由於系統的差異,所以無法建立乙個通用的低階i o標準庫。因此c採用的是標準i o包,級別更高,系統之間的差異由特定的c實現來處理,相當於提供了乙個標準...