博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一点关于指针的说明

Posted on 2008-07-23 13:47  浪端之渡鸟  阅读(247)  评论(0编辑  收藏  举报

1.int a;

     a是整形变量

     a =5;

2.int *a;

     a是指向整形的指针

     int *a;

     int b=4;

     a = &b;

3.int * a[10];

     a是指针数组,a是一数组,元素是指针。

4.char *a[10];和(char*)a[10];的区别是什么?还有((char *)a)[10];

     第一个是指针数组,第二个是数组指针,第三个是????我也说不太清,大家帮帮忙看看

 补充修改:((char *)a)[10];是void *a转化为char* a的一维数组就相当于普通的char a[10];

 

///////////////////////////////////////////////////////////////////////////////////////////

 int temp = shpheader.iFileCode;
 if(!g_bBigEndian) SwapWord(sizeof(int),(TCHAR*)&temp);

 

SwapWord(int length,TCHAR* wordP){
 int  i;
    TCHAR temp;

    for( i=0; i < length/2; i++ )
    {
  temp = wordP[i];
  wordP[i] =  wordP[length-i-1];
   wordP[length-i-1] = temp;

    }

 

///////////////////////////////////////////////////////////////////////////////////////////

上下两个代码等价,仔细考虑一下

///////////////////////////////////////////////////////////////////////////////////////////

 if(!g_bBigEndian) SwapWord(sizeof(int),&temp);

 

SwapWord(int length,void* wordP){
 int  i;
    TCHAR temp;

    for( i=0; i < length/2; i++ )
    {
       temp = ((TCHAR *) wordP)[i];
       ((TCHAR *)wordP)[i] = ((TCHAR *) wordP)[length-i-1];
       ((TCHAR *) wordP)[length-i-1] = temp;

 }

///////////////////////////////////////////////////////////////////////////////////////////