char指针初始化

时间:2010-09-29 13:42:38

标签: c pointers

我遇到了下面给出的一行

           char *ch=(char*)3000

我想知道这条线的含义.....

4 个答案:

答案 0 :(得分:9)

看起来像指针ch被分配了一个绝对的内存地址3000.一般来说这是一个非常糟糕的主意,除非你在没有分页的嵌入式系统上工作,你知道完全什么是在内存位置3000。

答案 1 :(得分:1)

也许看到其余的代码是相关的......

该指针可能与其所在的相关(在Intel处理器上)。在这种情况下,3000可能只是该段中的一个索引,在程序的前面定义,我们没有这些行。

这取决于系统架构,环境,操作系统,编译器,代码的其余部分(以及程序员......)。

答案 2 :(得分:0)

不是很明显吗?

数值“3000”被强制转换为char指针,即ch被初始化为内存地址3000(十进制)。

答案 3 :(得分:0)

AFAIK,3000没有特殊的地址/值,在大多数情况下访问它会导致分段错误或垃圾值。

如果你在代码中看到它,可能是它被错误地使用而不是(void *),比如在你有键值对的地图的情况下,结果可能会在这种情况下被转换为整数。