指针03 零基础入门学习C语言43

第八章:指针03

 

让编程改变世界

Change the world by program


 

源码分析

输出数组中的全部元素

假设有一个a数组,整型,有10个元素。要输出各元素的值有三种方法: (1) 下标法 (2) 通过数组名计算数组元素地址,找出元素的值。 (3) 用指针变量指向数组元素。   大家给分析分析,翻炒翻炒~ [codesyntax lang="c"]
#include <stdio.h>

void main()
{
    int *p, i, a[10];

    p = a;
    for( i=0; i < 10; i++ )
    {
        scanf("%d", p++);
    }
    printf("n");
    for( i=0; i < 10; i++, p++ )
    {
        printf("%d", *p);
    }
}
[/codesyntax]  

用数组名作函数参数

在第8章中介绍过可以用数组名作函数的参数 如: [codesyntax lang="c"]
void f(int arr[], int n)
{
    ……… ………
}
void main()
{
    int array[10]; 

    …… ……

    f(array, 10);
}
[/codesyntax]   void f(int arr[], int n) 但在编译时是将arr按指针变量处理的,相当于将函数f的首部写成 f(int *arr, int n) 以上两种写法是等价的。 需要说明的是:C语言调用函数时虚实结合的方法都是采用“值传递”方式,当用变量名作为函数参数时传递的是变量的值,当用数组名作为函数参 数时,由于数组名代表的是数组首元素地址,因此传递的值是地址,所以要求形参为指针变量。  

实战演练

将数组a中n个整数按相反顺序存放

[caption id="attachment_152" align="aligncenter" width="300"] 将数组a中n个整数按相反顺序存放[/caption]  

第一个版本:数组名作参数

reserve01.c(点击下载)  

第二个版本:指针作参数

reserve02.c(点击下载)  

课后题

 

题目:从10个数中找出其中最大值和最小值。

第一个版本! 体会一下解法,再把它变成第二个版本:用指针作参数!   [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LTCOQLTTGOMC']视频下载[/Downlink]
原文地址:https://www.cnblogs.com/LoveFishC/p/3847004.html