首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指针和数组的差别

2013-04-20 
指针和数组的区别#include stdafx.h#define WIDTH 6int max(int *, int )int _tmain(int argc, _TCHAR*

指针和数组的区别

#include "stdafx.h"
#define WIDTH 6
int max(int *, int );

int _tmain(int argc, _TCHAR* argv[])
{
int array[] = {4,3,6,2,8,6};
 printf("The max is: %d\n",max( array, WIDTH));

return 0;
}

int max(int *p, int n)
{
int i,max;

for(i=0,max = (*p); i<n; i++)
if(max < *(p+1))
max = *(p+1);
return max;
}

我想用指针的形式来完成max函数,上面的max函数输出的结果为什么不是最大值,而是4呢。
[解决办法]
循环中没有p++
[解决办法]

int max(int *p, int n)
{
    int i,max;
 
    for(i=0,max = (*p); i<n; i++)
    {
        if(max < *p)
        {
            max = *p;
        }
        p++;
    }
    return max;
}

p + 1 是不会改变 p的指向的,你这样p就一直指向初始位置了
[解决办法]
if(max < *(p+1)) 因为你这里加的不是i,而是1

热点排行