Eri*_*sum 2 c c++ pointers char char-pointer
我似乎比我原先想象的更像是C++中的菜鸟.就我对C/C++的了解而言,这应该有效.我定义了一个字符数组,然后尝试指定一个开头的指针......我做错了什么?
// Create character array
char str[] = "t xtd 02 1CF00400 08 11 22 33 44 55 66 77 88 0 0 1234.567890";
// Assign pointer to beginning of array
char* p = &str;
Run Code Online (Sandbox Code Playgroud)
chr*_*ris 10
类型str是char[63].作为参考,请注意字符串文字本身的类型const char[63]不是const char *.你取这个地址,它给你一个指针char[63],或char (*)[63].然后尝试将其分配给a char *.
你应该做的是不取地址,让数组衰减成指针:
char *p = str;
Run Code Online (Sandbox Code Playgroud)
但是,你真正应该做的是使用std::string.
您可以简单地省略地址运算符,
char *p = str;
Run Code Online (Sandbox Code Playgroud)
有效,数组会自动衰减为指向该上下文中第一个元素的指针。或者,如果你愿意的话,可以明确地进行强制转换,但这将是一种令人厌恶的行为。