[英]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 name
與foo('c')
,因為這是一個char。
因為一個簡單的char
只是一個字符,例如'c','A','0',etc.
。 char*
是指向內存中存儲一個或多個char
的區域的指針。
在C和C ++中,字符串通常表示為以空字符結尾的字符數組。
C和C ++中的數組通常表示為指向第一項的指針。
因此,字符串被表示為指向字符串中第一個字符的指針,這就是char *name
含義。 這意味着name
是指向字符串中第一個字符的指針。
您可能想讀一點C / C ++中的指針,數組和字符串,因為這是基本知識!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.