kev*_*rpe 5 c memory pointers literals memory-address
给定十六进制格式的文字内存地址,如何在C中创建一个指向此内存位置的指针?
我的平台(IBM iSeries)上的内存地址是128位.C类型long long也是128位.
想象一下,我有一个字符串(char数组)的内存地址,它是: C622D0129B0129F0
我假设正确的C语法直接寻址此内存位置:
const char* const p = (const char* const)0xC622D0129B0129F0ULL
我用ULL后缀表示unsigned long long literal.
我的内核/平台/操作系统是否允许我这样做是一个不同的问题.我首先想知道我的语法是否正确.
Gre*_*ill 12
你的语法几乎是正确的.你不需要其中一个const:
const char* const p = (const char*)0xC622D0129B0129F0ULL
Run Code Online (Sandbox Code Playgroud)
在const之前p表示该变量 p无法初始化后更改.它没有涉及到什么p指向什么,所以你不需要它在右边.