gpt4 book ai didi

c++ - 关于 char 指针的引用是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:00 26 4
gpt4 key购买 nike

我读过一段,但我不明白它是什么意思……谁能解释一下?该段是:

processing a single character as a char*string can lead to a fatal runtime error. a char* string is a pointer probably a large integer. however a character is a small integer(ascii 0-255). on many systems, dereferencing a char vaalue causes an error, because low memory addresses are reserved for special purposes such as operating system interrupt handlers- so "memory violations" occur.

最佳答案

这意味着你不应该做这样的事情:

char *pCh = 'A';  // this is the value 0x41 (assuming ASCII).
char Ch = *pCh; // probably not what you wanted.

因为字符和字符指针之间存在巨大差异。

事实上,当您尝试做类似的事情时,一个体面的编译器应该给您一个警告。

其余部分解释了一种可能的效果。如果您在 char 值为八位的系统中工作,它们将只能保存从 0 到 255 的值(包括 0 和 255)(ISO C 标准允许 char 值更大,但这种情况并不常见).从该值集中随机选择的指针不太可能有用。

这不是完全不可能的,因为你可能在一个嵌入式系统上,那里有内存映射 I/O,但在那种情况下,你更有可能使用类似于 #define IOPORT7 0x0041 并使用 IOPORT7 而不是 'A'

另一方面,指针往往能够指向您的整个地址空间,它可以是 32 位宽(或更大)。 32 位为您提供了大约 十亿 个指针可以指向的可能值。

关于c++ - 关于 char 指针的引用是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5231334/

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