Benjamin

静以修身,俭以养德,非澹薄无以明志,非宁静无以致远。
随笔 - 397, 文章 - 0, 评论 - 196, 引用 - 0
数据加载中……

看似简单,其实确并不简单的一道C测试题

偶然的机会看到下面的代码,看似简单,细细想来并非如此。

#include <stdio.h>
int main(int argc, char* argv[])
{
    
int   a[5]={1,2,3,4,5}; 
    
int   *ptr1=(int*)(&a+1); 
     
int   *ptr2=(int*)((int)a+1); 
     
int   *ptr3=(int*)(&a[0+ 1);

     printf(
"%x,%x,%x\n",ptr1[-1],*ptr2,*ptr3); 


    getchar();
    
return   0
    
}

题目虽小,但是考察的知识点可真多。运行结果足够我们出乎意料的。
注意的是这样的代码在我们的日常应用是不多见的,不提倡的。但作为考题,足够我们思索半天了。

posted on 2009-05-25 21:44 Benjamin 阅读(317) 评论(0)  编辑 收藏 引用 所属分类: C/C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理