小编And*_*ewN的帖子

C 中的无符号指针

我的一个朋友给我提出了这个问题,请我帮忙解决:运行这段代码后,指针 p 中记录的地址将是哪个?

unsigned * p = (unsigned*)1000;
p += 10;
Run Code Online (Sandbox Code Playgroud)

我刚刚继续使用 CodeBlocks 并添加到这个练习中printf("%u", p);,答案是 1040。

什么是(unsigned*)1000,什么意思?打印记住的地址的正确方法是printf("%u", p),还是需要使用另一种语法/另一种格式说明符?而且,为什么答案是 1040,而不是 1010?

主要问题,唯一给出的行是:

unsigned * p = (unsigned*)1000;
p += 10;
Run Code Online (Sandbox Code Playgroud)

基于这些,我做了一些谷歌研究,我认为获取地址的正确方法是将printf("%u", p);. 即使这是正确的并且这是正确的语法,我仍然无法理解此添加背后的过程。

c unsigned pointers memory-address

0
推荐指数
1
解决办法
160
查看次数

标签 统计

c ×1

memory-address ×1

pointers ×1

unsigned ×1