关于C语言指针的一个疑问
本帖最后由 cc_xie 于 2013-07-13 17:01:43 编辑
int func( void )
{
char *ptr = "";
char *ptrtmp = ptr-1;
while( ptrtmp < ptr )
{
ptrtmp--;
}
printf( "ptrtmp >= ptr\n" );
return 0;
}
问题是 while() 不是死循环,这是为什么呢? 这是涉及到内存的分布问题,还是 char* 的指针值是一个unsigned 型而导致地址 ptrtmp 溢出的问题? 望不吝赐教,在此万分感谢! C 指针 内存
[解决办法]
答案是
char* 的指针值是一个unsigned 型而导致地址 ptrtmp 溢出
这个问题LZ,你加个LOG就能看出来
※打印指针的值用%p