数组与指针(数组中所有元素的和)

//1.下面这个例子是计算数组中所有元素的和
//数组与指针的关系,整型是4个字节,a[] == *a, a[i] = *(a+i)
#include <stdio.h>
#define SIZE 10
int sum (int a[],int n);
int main(){

    int ar [SIZE] = {10,20,30,40,50,60,70,80,90};
    long answer;
    answer = sum(ar, SIZE);   //重点是这一句,ar为int [10]类型
    printf("%lu\n",sizeof(answer)); //answer是long 型 8个字节
    printf("answer=%lu\n",answer); //结果是450;
    return 0;
}
int sum (int a[]/***a*/, int n){//两种等价

    int total = 0,i = 0;
    for (i = 0; i < n; i++) {
//        total += a[i];  //上面和下面的两种公式是等价,
        total += *(a+i);
    }
    return total;
}

数组中所有元素的和.

时间: 2024-10-10 09:26:37

数组与指针(数组中所有元素的和)的相关文章

数组、指针数组、数组指针、返回数组指针的函数的关系

直接上代码吧,解释说得很清楚了. // C++Primer.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> using namespace std; int (*function(int i))[10];//返回数组指针的函数 int main() { cout<<"数组.指针数组.数组指针.返回数组指针的函数:"<<endl<<endl; in

qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体

c语言中数组,指针数组,数组指针,二维数组指针

1.数组和指针 int array[5] = {1,2,3,4,5};// 定义数组 // 1. 指针和数组的关系 int * pa = array; pa = array; // p[0] == *(p+0) == array[0] == *(array+0) printf("%p\n", pa); printf("%p\n", array); /* 访问数组两种方式 1. 下标法访问 数组名[下标] 指针[下标] 下标:偏移量 2. 指针法访问 *(p+1) *

复习一下整型数组,字符数组,整型指针数组,字符指针数组,整型数组指针,字符数组指针

20:52:01 2019-12-31 整型数组 int a[10];字符数组 char b[10]; _______________________整型指针数组 int *p[10]; |__|__|__|__|__|__|__|__|__| 每个格子里存的是一个指针,每个指针都是int类型的,会指向一个int的值. 1 for(int i=0; i<10; i++) 2 p[i] = &a[i]; //把a中的每个元素的地址都放在了指针数组p里. 3 4 for(int j=0; j&l

c++ 用new创建二维数组~创建指针数组【转】

#include <iostream> using namespace std; void main() { //用new创建一个二维数组,有两种方法,是等价的 //一: int (*p)[10] = new int[5][10]; //二: int **p = new int* [5]; for(int i=0;i <5;i++) p[i] = new int[10]; //指针数组的创建,也有两种方法 //一: char **pa = new char* [4]; for (int

二维数组和指针数组做形参

先回顾一下二维数组的写法: 1. int array[3][4]; 2. int array[][4]; 3. int (*array)[4]; 不管怎么样,二维的长度是不能省略的,多维数组(不管二维,三维,四维...)最多只能省略第一维的长度; 比较好玩的是第三种: 注意两种不同: int (*array1)[N]; int  *array2[N]; 我比较喜欢下面这种方式,那么两种有什么不同呢,int (*array1)[N] ------array1是一个指向一维数组的指针, 而  int

数组与指针数组 汇编区别

int array[] = {2,3,4,5};00A3355E mov dword ptr [array],2 00A33565 mov dword ptr [ebp-10h],3 00A3356C mov dword ptr [ebp-0Ch],4 00A33573 mov dword ptr [ebp-8],5 int *p =array;00A3357A lea eax,[array] 00A3357D mov dword ptr [p],eax printf("%d\t",a

二维数组和指针数组

#include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int arr1[3]; int arr2[3]; int arr3[3]; int * ptr; // ptr1是一个指向 int [3] 的指针,即ptr的类型和&arr1的类型是一样的,注意:arr1指向的内存区域定长 int ptr1[3][3]={{1,2,3

C语言指针数组(每个元素都是指针)

转载:http://c.biancheng.net/cpp/html/3246.html 注意:数组指针的区别 如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组.指针数组的定义形式一般为: dataType *arrayName[length]; [ ]的优先级高于*,该定义形式应该理解为: dataType *(arrayName[length]); 括号里面说明arrayName是一个数组,包含了length个元素,括号外面说明每个元素的类型为dataType *. 除了每个