(学习路径http://blog.csdn.NET/lanouluanbin/article/details/53518018)
17指针二
#import <Foundation/Foundation.h>
int maxValue(int a,int b);
int maxValue(int a,int b)
{
return a>b?a:b;
}
int main(int argc, const char * argv[]) {
//指针和数组
int ages[5] = {10,17,25,13,45};
int *p = ages;//数组的名字本身就代表首元素地址
printf("%d\n",*p);
//普通遍历
for (int i = 0; i<5; i++) {
printf("%d ",ages[i]);
}
for (int i = 0; i<5; i++) {
printf("%d ",*(p+i));
}
//定义一个有10个元素的数组 元素位于10-70之间 用两种方式求出其中的最大值
int numbers[10] = {0};
int max = 0;
/*
for (int i = 0; i<10; i++) {
int result = arc4random()%61 + 10;
printf("-->%d",result);
numbers[i] = result;
if (numbers[i]>max) {
max = numbers[i];
}
}
printf("\n%d\n",max);
*/
int *p1 = numbers;
for (int i = 0; i<10; i++) {
int result = arc4random()%61+10;
printf("-->%d",result);
numbers[i] = result;
if (*(p1+i)>max) {
max = *(p1+i);
}
}
printf("\n%d\n",max);
//指针和数组名字区别
//指针是变量 可以随意更改指向(也就是保存的地址可以随时改)
//数组名字是常量 永远表示数组首元素的地址
//函数指针
int (*p3)(int,int) = maxValue;
//p3是一个函数指针 它能指向 返回值为int并且带有两个int参数的函数
int result1 = p3(10,20);
printf("%d ",result1);
return 0;
}