C语言:返回两个数组中第一个元素的指针,并输出这个值
//
// main.c
// Pointer_search
//
// Created by ma c on 15/8/2.
// Copyright (c) 2015年. All rights reserved.
// 要求:通过指针查找,实现比较两个有序数组中的元素,输出两个数组中的第一个相同的元素值。
#include <stdio.h>
int *searchSameElement(int *a,int *b,int len1,int len2);
int main(int argc, const char * argv[])
{
int a[] = {4,51,8,6,7,10};
int b[] = {80,8,10,90,7,10,51};
int len1 = sizeof(a)/sizeof(a[0]);
int len2 = sizeof(b)/sizeof(b[0]);
int *pt = searchSameElement(a,b,len1,len2);//返回第一个相同的值地址
if(pt)
printf("%d\n",*pt);
else
printf("the same number don not find!\n");
return 0;
}
int *searchSameElement(int *a,int *b,int len1,int len2)
{
int *pa = a;
int *pb = b;
while((pa++)<(a+len1))
{
while(pb<(b+len2))
{
if(*pa!=*pb)
{
pb++;
}
else
{
return pa;
}
}
}
return 0;
}