计算数组元素的和、交换变量(指针)

/*
计算数组元素的和(指针)
*/

#include<stdio.h>
int sum(int* a, int n)
{
    
    
	int ans = 0;
	for(int i = 0; i < n; i++)
		ans += a[i];
	
	return ans;
}

int main()
{
    
    
	int a[] = {
    
    1,2,3,4,5,6,7,8,9,10};
	printf("%d\n", sum(a+1,3));   // 指针 a+1 指向 a[1]   3表示元素的个数  
	printf("%d\n", sum(a, 4)); 	  // 指针 a 指向 a[0] 	4表示元素的个数 
	
	return 0;
} 




计算左闭右开区间内数组的元素和(指针的两种写法) 

 int sum(int* begin, int* end)
 {
    
    
 	int n = end - begin;
 	int ans = 0;
 	for(int i = 0; i < n; i++)
 		ans += begin[i];
	 
	 return ans;
}
 
 
 int sum(int* begin, int* end)
 {
    
    
 	int *p = begin;
 	int ans = 0;
 	for(int *p = begin; p != end; p++) 
		ans += *p;
		return ans;
 }
 
声明了一个长度为10的数组,则它的元素之和就是 sum(a,a+10);
若要计算a[i],a[i+1]…a[j],则需要调用 sum(a+i,a+j+1); 

/*
指针交换变量
*/

/*
	指针交换变量 
*/
用函数交换变量

#include<stdio.h>
viod swap(int* a, int* b)
{
    
    
	int t = *a;
	*a = *b;
	*b = t;
}

int main
{
    
    
	int a = 3, b = 4;
	swap(&a, &b);
	printf("%d %d\n", a, b);
	
	return 0;
}

****

#include<stdio,h>

void swap(int* &p1, int* &p2) {
    
    
	int *temp = p1;
	p1 = p2;
	p2 = temp;
}

int main
{
    
    
	int a = 3, b = 4;
	int *p1 = &a, *p2 = &b;
	swap(p1, p2)
	printf("a = %d, b = %d\n", *p1, *p2);
	
	return 0;
}

Guess you like

Origin blog.csdn.net/KennGum/article/details/106579774