指向字符的指针中的垃圾值
Garbage value in pointer to char
在代码中:
int main(){
int a = 10;
int * s = &a;
cout << s;
}
"a"的内存地址按预期打印。但是,当我尝试时:
int main(){
char a = 10;
char * s = &a;
cout << s;
}
输出是垃圾值。这可能是什么原因呢?
这是因为operator<<
具有处理字符指针的特殊功能,因为它们是旧版 C 中的字符串。因此,它将假定您提供的任何char *
都是指向旧 C 字符串中第一个字符的指针,并按此打印它。
如果要专门将其视为指针,请将其强制转换为指针类型,而无需特殊处理,如下所示:
cout << static_cast<void *>(s);
相关文章:
- 指向指向字符数组的指针数组的指针
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将字符缓冲区强制转换为函数指针
- 在函数中返回无符号字符数组,但不返回指针
- 将字符逐个分配给指针?
- 如何返回实际值(在我的例子中是无符号字符数组)而不是来自 C++ 函数的指针?
- 如何循环访问 cpp 中的函数返回的字符指针数组
- 将字符数组复制到 QByte 数组中,而无需传递指针
- C++:使用没有位移位的指针将无符号字符转换为无符号 int
- C++指针数组到字符数组中的特定位置
- 如何从链表指针字符中查找字符
- 获取字符数组地址,然后转换为指针字符
- 在指针字符 c++ 中分配字符数组的值
- C 指针字符
- 将向量传递<char>到指针字符*
- 如何修复未对齐的指针(字符**)
- 如何打印指针字符数组
- 指针 *字符和 &字符
- C++指针字符
- C/ c++:从指针字符一维数组中访问单个字符