簡體   English   中英

字符串名稱,作為指向第一個字符的指針

[英]name of string as a pointer to its first character

給定

string name="avinash";  
cout<<&name;  

如果name是指向a的指針,那么我們如何在指針上使用地址?

name不是指針,而是std::string本身。 因此, &name是該字符串的地址,這意味着此代碼將打印出一個數字。

即使它是一個指針,也可以在其上使用operator &完全合法:它將返回指針變量在內存中的地址(另一個數字)。

如果您想要一個指向name第一個字符的指針,請使用name.c_str()獲得一個C樣式的以空字符結尾的字符串(實際上是一個字符串的第一個字符的指針),或者name.data()它返回一個指向字符串的指針,但不保證該字符串將以null終止。

name不是指針,名稱是std::string對象。 &name 一個指針,是該對象的地址。

  1. name不是指針,它是std::string類型的對象。 &name為您提供該對象的地址。
  2. 要獲得指向字符串第一個字符的(常量)指針,請使用name.c_str()
  3. 指針也有地址!

     int i = 5; int *j = &i; int **k = &j; 

    如果要將指針傳遞給必須操縱該指針的函數(例如,通過分配內存),這將很有用:

     void allocate_string(std::string **foo) { *foo = new std::string(); } 

嗨,字符串類有c_str()方法。 使用const char* ptr = name.c_str();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM