我现在已经阅读了至少十几篇关于%p的文章,我仍然没有得到明确的答案.我意识到网站上有多个帖子,我读了很多帖子.我甚至读过这篇文章,但它没有充分解释
说我有:
int x = 10; void *p = &x;
下面的语句是否打印出'p'的地址或'x'的地址?
printf( "Here: %p\n" , p );
我试图获得x到p的地址.
对于某些上下文,我正在迭代堆栈,寻找指向我创建的链表的指针:
void foo(){ register void* base asm("ebp"); void* iter = base; void* mBase = MAIN_BASE; //global defined as "register void* base asm("ebp")" in main function void* start = &head; void* fin = &tail + sizeof( tail ); while( iter != mBase ){ if( iter >= start && iter <= fin ) fprintf( stdout, ">>>>%p\n", iter ); printf("iter: %p\n", iter ); iter = (void*)( (char*)iter + 1 ); } }
mcleod_ideaf.. 9
它打印变量p 的内容,恰好是x的地址,因此它打印x的地址.它使用特定体系结构的地址格式显示它.格式可能因架构而异:存储在远段数据中的变量可以使用生成MS DOS实模式可执行文件的C编译器以完全不同的格式打印,例如025A:0008
类似的东西.
它打印变量p 的内容,恰好是x的地址,因此它打印x的地址.它使用特定体系结构的地址格式显示它.格式可能因架构而异:存储在远段数据中的变量可以使用生成MS DOS实模式可执行文件的C编译器以完全不同的格式打印,例如025A:0008
类似的东西.