[英]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
是一个指针,是该对象的地址。
name
不是指针,它是std::string
类型的对象。 &name
为您提供该对象的地址。 name.c_str()
。 指针也有地址!
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.