1樓:最大的寶寶
如果你想輸出ps的地址,可以使用&ps,而ps的用法,在c++實現中是輸出它指向的內容。「流」使用很抽象的類别範本來實現,**雖然是公開的,但至少先把stl或atl的基礎弄懂才可能讀懂它
2樓:匿名使用者
我認為cout是類ostream的物件,而ostream的定義是typedef basic_ostreamostream,顯然ostream類是類别範本basic_ostream的一個例項,ostream操作物件都是char型別。那麼cout作為類ostream的例項,必然也是以char為預設操作物件。從人的使用習慣來看也是一樣,既然呼叫了cout一般是為了輸出字元而不是一個地址。
如果你是cout的開發者肯定首先想到的是輸出字串,而不是一個地址。
3樓:攻扶嘉
首先我們要明確一點,在這兩行的*號的意義是不一樣的,前面一行是定義了一個指標陣列和一個指標變數;第二行是讀地址符。
*s[1]指讀取陣列s的第二行首字元
ps本身是指向陣列s的一級指標,所以,輸出ps就像輸出用一級指標定義的一個字串一樣,會輸出它的內容。
4樓:匿名使用者
因為庫函式裡對cout過載了,允許這種輸出
c++怎麼用cout輸出字串
5樓:狼道刀
如果你是用char定義了字元陣列的話, 直接輸出字元陣列名就行了,如果你用的string類, 同樣直接輸出。
**如下:
#include
#include
using namespace std;
int main()
擴充套件資料
c++的輸入輸出流:
輸入和輸出是資料傳送的過程,資料如流水一樣從一處流向另一處(單方向、一維)。c++形象地將此過程稱為流(stream)。c++的輸入輸出流是指由若干位元組組成的位元組序列,這些位元組中的資料按順序從一個物件傳送到另一物件。
實際上,在記憶體中為每一個資料流開闢一個記憶體緩衝區,用來存放流中的資料。當用cout和插入運算子「<<」向顯示器輸出資料時,先將這些資料送到程式中的輸出緩衝區儲存,直到緩衝區滿了或遇到endl,就將緩衝區中的全部資料送到顯示器顯示出來。
在輸入時,從鍵盤輸入的資料先放在鍵盤緩衝區中,當按回車鍵時,鍵盤緩衝區中的資料輸入到程式中的輸入緩衝區,形成cin流,然後用提取運算子「>>」從輸入緩衝區中提取資料送給程式中的有關變數。總之流是與記憶體緩衝區相對應的,緩衝區中的資料就是流。
在c++中,輸入輸出流被定義為類。c++的i/0庫中的類稱為流類(streamclass)。用流類定義的物件稱為流物件。
cout和cin並不是c++語言中提供的語句,它們是iostream類的物件。
正如c++並未提供賦值語句,只提供賦值表示式,在賦值表示式後面加分號就成了c++的語句,我們習慣稱之為賦值語句。
在c語言中常用printf和scanf進行輸出和輸入,printf和scanf是c語言庫函式中的輸入輸出函式,一般也習慣地將由printf和scanf函式構成的語句稱為printf語句和scanf語句。在使用它們時,對其本來的概念要有準確的理解。
6樓:笨笨地攤貨
#include #include //不要忘記包含此標頭檔案using namespace std;int main()
{ int a; cout<<"input a:";
cin>>a; cout<<"dec:"/以十進位制形式輸出整數cout<<"hex:"/以十六進位制形式輸出整數acout<<"oct:
"/以八進位制形式輸出整數achar *pt="china";
//pt指向字串"china"
cout/指定域寬為,輸出字串
cout/指定域寬,輸出字串,空白處以'*'填充double pi=22.0/7.0;
//計算pi值
//按指數形式輸出,8位小數
cout cout<<"pi="/改為小數形式輸出return 0; 拓展資料: c++是一種物件導向的計算機程式設計語言,由美國at&t貝爾實驗室的本賈尼·斯特勞斯特盧普博士在20世紀80年代初期發明並實現(最初這種語言被稱作「c with classes」帶類的c)。它是一種靜態資料型別檢查的、支援多重程式設計正規化的通用程式設計語言。它支援過程化程式設計、資料抽象、物件導向程式設計、泛型程式設計等多種程式設計風格。 c++是c語言的繼承,進一步擴充和完善了c語言,成為一種物件導向的程式設計語言。c++這個詞在中國大陸的程式設計師圈子中通常被讀做「c加加」,而西方的程式設計師通常讀做「c plus plus」,「cpp」。 7樓:高_婷婷 c++裡cout太自作聰明瞭,為了省去我們迴圈輸出字元的麻煩,cout<命令如下: void main() {char *p2="abcd"; cout<<*p2<輸出結果如下:0046f020才是p的值,0013ff7c實際為&p. aabcd 0013ff7c 0013ff7c 0046f020 press any key to continue 8樓: #include using namespace std; void main() c++中,陣列名代表首元素的地址,那為何cout字元陣列名輸出的確實整個陣列?而不是首元素? 9樓:匿名使用者 cout不是 baiiostream中的嗎du? #include using namespace std; int main() 為什麼c++中無法用cout輸出字串 10樓:風若遠去何人留 用cout輸出字串是可以的。大前提是當前名空間需要是std。即**中使用了 using namespace std; 或者單獨宣告使用cout,即**中有 using std::cout; 否則需要使用 std::cout進行輸出。 在c++中有兩種字串的概念。 1 string 類物件字串。需要使用std名空間,或者宣告使用std::string。 定義時string s1 = "string"; 輸出時cout< 2 字元陣列。 c語言中字串以字元陣列形式儲存,並約定以\0作為結束符。 當定義char s2[100] = "char array"; 時,輸出時使用 cout << s2; 11樓:欲成仙奈何為魔 標頭檔案寫沒寫錯?名稱空間有沒有宣告?最容易犯的錯誤就是這兩個了。最好把程式全發上來。還有,編譯器有沒有說錯誤? 12樓:匿名使用者 沒有整個的程式,特別是main函式,不知道你出的什麼錯誤,或者和整個函式無關的錯誤呢? 因為單從這個函式看,好像沒有太大問題。 13樓:匿名使用者 c++的標準輸出流就是cout,你的用法也是對的! 是不是沒有使用作用域說明:using namespace std;? 你給個完整的程式,或者把錯誤原因發一下? 14樓:匿名使用者 while(p) 15樓:萌寵奇趣秀 使用cout和cin必須呼叫標頭檔案 #include"iostream" using namespace std; 16樓:匿名使用者 #include using namespace std; 17樓: 標頭檔案加一個#include試試 18樓:倒黴熊 首先 這樣是可以輸出的 請問:提示的什麼錯誤,還是什麼也沒有輸出啊 你怎麼賦值的?? c++中,如果cout 或者cin char型別的陣列名,指標,都會把字串輸出,而不是輸出地址, 19樓:風若遠去何人留 對於char*或者char 會輸出字串如果是string型別,如果你輸出string本身,那麼輸出的是字串 如果你輸出的是string陣列的陣列名,那麼輸出的是地址。 比如string a[2] = ; 如果cout>>a[0]; 那麼輸出的就是 111111 如果用cout << a; 那麼輸出的就是a的地址。 20樓:匿名使用者 char*是字串,最後面有'\0'結束標誌,所以輸出的是字串,這個比較特別吧,string就跟這不一樣了 str等效於 str 0 是個地址,編譯器會認為它是char格式的地址,所以你 1時的確會指向下一個字元地址,實際上str 14 ab 與str 14 是一樣的,剩下的就不改變原值,就是該記憶體段原本的狀態 高階優化 或者宣告時就把全部地址填入0 問題二是錯誤的,至少c語言規範沒有這種語法,str是... 二維陣列名即陣列地址,指向首行地址,表面上看,行地址即一維陣列指標,而陣列名指向行就應該是指標的指標,但是必須注意指標也是有型別的,型別不同資料寬度也不同。如果a 10 10 假設int p a 那麼要對行遞增執行p 時,編譯器如何知道列寬?因為int 是指指向一個 int 型別的指標,32位系統中... 豔陽高照的午後 二維陣列本質上是以陣列作為陣列元素的陣列,即 陣列的陣列 二維陣列定義 型別說明符 陣列名 常量表示式 常量表示式 例如 float a 3 4 b 5 10 定義a為3 4 3行4列 的陣列,b為5 10 5行10列 的陣列。注意,不能寫成 float a 3,4 b 5,10 二...C語言問題高手來回答。字串陣列名代表的是什麼?下面的這個字串陣列多餘部分是存什麼
二維陣列名和指標的關係,C語言中陣列名和指標的區別
二維陣列名代表什麼