[英]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.