zoukankan      html  css  js  c++  java
  • C 函数、指针和数组

    C中经常要写一个对数组进行操作的函数,下面介绍一下,数组、指针和函数的应用:

    指针和数组:

    #include <stdio.h>
    #include <stdlib.h>
    int sum(int *ar,int n);
    int main()
    {
        int a[10];
        int n=5,i;
        for(i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        printf("%d",sum(a,n));
        return 0;
    }
    int sum(int *ar,int n){
        int i,total=0;
        for(i=0;i<n;i++){
            total+=ar[i];
        }
        return total;
    }

        代码中,sum()函数的参数是一个数组的名字,数组的名字代表数组首元素的地址,在这里是一个int 的地址,因此应该把它赋给一个类型为指向int的指针的形式参量,于是得到代码中的函数原型。

        用到数组时,往往需要知道何时开始和何时结束数组

    第一种方式是把数组大小作为第二个参数传递给函数。

    如上面那个代码 ↑

    注:例子中可以用 int ar[]代替int *ar;(只不过int ar[]更强调这是一个数组)

    第二种方式

    #include <stdio.h>
    #include <stdlib.h>
    #define SIZE 10
    int sump(int *start,int *end);
    int main()
    {
        int a[SIZE]={1,2,3,4,5,6,7};
        printf("%d",sump(a,a+SIZE));
        return 0;
    }
    int sump(int *start,int *end){
    
        int total=0;
        while(start<end){
            total+=*start++;//*和++优先级相等,但它在结合时是从右向左进行的
        }
        return total;
    }

    注:while循环中处理的是end所指向的位置之前的元素,即end实际指向的位置是数组之后的第一个位置,其是合法的。如果让end指向最后一个元素,就需要使用下面的代码,其不如上面的例子简洁

       printf("%d",sump(a,a+SIZE-1));

    指针和多维数组:

    ——————————-

    以上内容参考自《C Primer Plus》

    祝你早日攒够失望,然后开始新的生活。
  • 相关阅读:
    从一个word文件中读取所有的表格和标题(1)
    多线程下QAxObject指针为NULL的解决办法
    event对象,ie8及其以下
    日期插件kalendae,遇到的一些问题
    回车键和button按钮都绑定同一个事件,如何避免按回车的时候button重复点击
    jQuery.Cookie.js用法
    jquery操作radio单选按钮、checked复选框。
    拖拽改变div的大小
    [BZOJ 2242] [SDOI 2011] 计算器
    20181016提高测试
  • 原文地址:https://www.cnblogs.com/LuRenJiang/p/6858406.html
Copyright © 2011-2022 走看看