在C++中操作指针。我遇到了一些意想不到的情况。这是我的代码:
```cpp ```
当我运行此代码时,
额外信息:使用g++ 4.8.4编译。
```cpp ```
int main(){
char p=0;
char* ptr=&p;
cout<<"This is the pointer: "<<ptr;
return 0;
}
当我运行此代码时,
ptr
的输出为空。如果我将p
的值更改为任何其他值,它似乎会输出一个随机指针,例如值在不同运行之间更改,这是我所期望的。那么问题是将char值分配为0有什么不同。额外信息:使用g++ 4.8.4编译。
cout
会将char*
视为以字符p开头的空终止字符串。当第一个字符是'\0'
时,它就是一个空字符串。 - jmc(char)0
(数字转换为字符,通常是其ASCII值)与'0'
(ASCII字符零,十进制48)不同于"0"
(一个包含ASCII零和空终止符的匿名字符串)。 - Mr. Llama