gpt4 book ai didi

c++ - C++ 中的字符指针

转载 作者:行者123 更新时间:2023-11-28 01:31:26 24 4
gpt4 key购买 nike

有人告诉我,strdup 返回存储字符串的地址。所以在我提到的程序中,为了打印字符串,我认为我必须使用取消引用运算符 *,但是如果我这样做它只打印第一个字符而不使用取消引用运算符,我得到了整个字符串。我不知道何时使用取消引用运算符。

与直接分配 const char 相同。

当我用 int 检查它时,它打印地址而不是值。为什么不同。

程序:

#include <iostream>
#include <string.h>
using namespace std ;

int main()
{
char* num = strdup("Adam ");
cout << num << endl ;
char *n = "Eve ";
cout << n << endl;

int *m = (int*)670;
cout << m << endl ;
cout << *m << endl;
}

最佳答案

在 C 中确实没有字符串。存储字符串的地址就是字符串。

这很令人困惑,因为在 C++ 中有字符串,所以你有 C++ 字符串和 C 字符串,这两种字符串在 C++ 程序中都是合法的。如果你有 C++ 字符串的地址,你真的必须使用取消引用运算符(就像你使用 int 一样)。

关于c++ - C++ 中的字符指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51378239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com