簡體   English   中英

如何獲得一個指向字符數組中第一個字符的常量指針?

[英]How can you get a constant pointer to the first char in a character array?

在以下程序中,使用cin更改了存儲的字符串,從而更改了地址。 字符串的第一個元素的地址由s表示。 第一個元素的地址是字符串本身。 因此,當輸入新字符串時,它已更改。 當我嘗試輸出&s[0]cout它給整個字符串。

#include<iostream>
using namespace std;
int main() {
    char s[6];
    cin >> s;   // say abcde
    cout << s ; 
    cout << &s[0] ; // gives abcde

    cin >> s;   // say stack 
    cout << s;  
    cout << &s[0] ; gives stack
}

地址未更改,存儲在該地址的數據正在更改。 整個字符串被打印的原因是因為您傳遞了一個指向 cout指針 ,並且可以通過提供一個指向第一項的指針來將數組傳遞給一個函數(或流)。 將指針傳遞給第一個char就像傳遞C樣式字符串。 如果要打印第一個字符的地址,則需要將指針cout<<(void*)&s[0]void*cout<<(void*)&s[0] (這將打印第一個字符的地址)。

暫無
暫無

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

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