读书人

求教指针有关问题

发布时间: 2012-09-18 16:21:42 作者: rapoo

求教指针问题?
#include<stdio.h>

#define SIZE 10

void addarrays(int [],int []);

int main(void)
{
int a[SIZE]={1,1,1,1,1,1,1,1,1,1};
int b[SIZE]={9,8,7,6,5,4,3,2,1,0};

addarrays(a,b);

return 0;
}

void addarrays (int first[],int second[])
{
int total[SIZE];
int *ptr_total=&total[0]; // 这个起啥作用呢?
int ctr=0;

for (ctr=0;ctr<SIZE;ctr++)
{
total[ctr]=first[ctr]+second[ctr];
printf("%d+%d=%d\n",first[ctr],second[ctr],total[ctr]);
}
}



[解决办法]
你这程序是两个数组对应元素求和吧。
int *ptr_total=&total[0]; 这句话的意思是将total数组的首地址赋值给指针ptr_total,也就是说对指针进行赋值,接下来程序对total数组的操作,都可以通过指针ptr_total来实现。
不过看你的addarrays()方法,虽然给指针赋值了,但是却没有对该指针进行任何操作...可以把int *ptr_total=&total[0]这句话直接去掉。或者是把int *ptr_total=&total[0]; 改成*ptr_total++ = first[ctr]+second[ctr];

读书人网 >C语言

热点推荐