指针学习七——指针求和

#include
int main()
{
	double a[2],*p,*q;
	
	p=&a[0];
	q=p+1;
	printf("%d\n",q-p);//q和p之间数组元素的个数 
	printf("%d\n",(int)q-(int)p);//q和p之间数组元素的存储单元数
	//强制转换,给出两个double型数组元素所在的内存首地址   

	return 0;
}

//1
//8
#include
int main()
{
	int i,a[10],*p;
	long sum=0;
	
	printf("enter 10 integers: ");
	for(i=0;i<10;i++)
	 scanf("%d",&a[i]);
	 
	//数组方法求和 
	for(i=0;i<10;i++)
		sum=sum+a[i];
	printf("sum=%ld\n",sum);
	//指针方法求和 
	sum=0;
	for(p=a;p<=a+9;p++)//指针变量p指向基地址a[0],p++指向下一个变量的内存地址a[1] 
		sum=sum+*p;
	printf("sum=%ld\n",sum);
	
	sum=0;
	for(p=a;p<&a[10];p++)//p连续取的值就是&a[0],&a[1]... 
		sum=sum+*p;
	printf("sum=%ld\n",sum);
	
	return 0;
 } 



//enter 10 integers: 10 9 8 7 6 5 4 3 2 1
//sum=55
//sum=55
//sum=55

 

 

你可能感兴趣的:(C语言)