簡體   English   中英

為什么char * x不是char x?

[英]Why char *x not char x?

我有一個密碼

#include <iostream>
using namespace std;

void foo(char *name){ // ???
    cout << "String: " << name << endl;
}

int main(){
    foo("Hello");
    return 0;
}

我不知道為什么我不能使用“字符名稱”。 請幫忙。

干杯,

char a只是單個字符,而char*是指向字符序列(字符串)的指針。

當您調用foo("Hello") ,您傳入的字符串文字(嚴格來說是char的數組)可以轉換為char的指針。 因此foo必須接受char*而不是char因為否則類型將不匹配。

char name是單個字符

char* name是指向堆中字符的指針,如果分配正確,則可以是字符數組。

字符串可以表示為一個char數組。 您可以使用char *指針來引用該字符串。 您可以將char namefoo('c') ,因為這是一個char。

char表示單個字符。 char *是指向內存中包含一個或多個字符(字符串)的地址的指針 如果您使用的是C ++,則可以考慮使用std::string因為它可能會稍微熟悉一些。

因為一個簡單的char只是一個字符,例如'c','A','0',etc. char*是指向內存中存儲一​​個或多個char的區域的指針。

在C和C ++中,字符串通常表示為以空字符結尾的字符數組。

C和C ++中的數組通常表示為指向第一項的指針。

因此,字符串被表示為指向字符串中第一個字符的指針,這就是char *name含義。 這意味着name是指向字符串中第一個字符的指針。

您可能想讀一點C / C ++中的指針,數組和字符串,因為這是基本知識!

暫無
暫無

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

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