如何在C语言中使用指针计算数组元素的和?
考虑以下语句:
int qty = 179;
声明指针
声明指针的语法如下:
int *p;
这里,'p' 是一个指针变量,它保存其他变量的地址。
指针的初始化
地址运算符 (&) 用于初始化指针变量。
例如:
int qty = 175; int *p; p= &qty;
指针数组
它是地址的集合(或)指针的集合。
声明
以下是指针数组的声明:
datatype *pointername [size];
例如:
int *p[5];
它表示一个指针数组,可以保存五个整型元素的地址。
初始化
‘&’ 用于初始化
例如:
int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (or) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i;
访问
间接运算符 (*) 用于访问。
例如:
for (i=0, i<3; i++) printf ("%d", *p[i]);
使用指针计算数组元素和的C程序
以下是使用指针计算数组元素和的C程序:
//sum of array elements using pointers #include <stdio.h> #include <malloc.h> void main(){ int i, n, sum = 0; int *ptr; printf("Enter size of array :
"); scanf("%d", &n); ptr = (int *) malloc(n * sizeof(int)); printf("Enter elements in the List
"); for (i = 0; i < n; i++){ scanf("%d", ptr + i); } //calculate sum of elements for (i = 0; i < n; i++){ sum = sum + *(ptr + i); } printf("Sum of all elements in an array is = %d
", sum); return 0; }
输出
执行上述程序时,会产生以下结果:
Enter size of array: 5 Enter elements in the List 12 13 14 15 16 Sum of all elements in an array is = 70
广告