非便携式指针转换

时间:2014-01-26 21:28:23

标签: c arrays exception pointers warnings

#include<stdio.h>
#include<conio.h>
void change(int *);
int main()
{
 int a[5] = {1,2,3,4,5};
 int i;
 clrscr();
 change(a);
 for(i=4;i>=0;i--)
    {
    printf("%d\n",a[i]);
    }
 getch();
 return 0;
}
void change(int *b)
{
 int i;
 for(i=0;i<=4;i++)
 {
  b=*b+1; //showing nonportable pointer exception
  b++;
 }
}

输出不符合预期,没有错误和1个警告.... 预期产出:65432 电流输出:54321

1 个答案:

答案 0 :(得分:0)

b的类型为int *,而*b + 1的类型为int。您正在为指针类型指定int类型。改变

 b=*b+1;   

*b = *b+1;