多重指针:
//#include<stdio.h>
//int main() {
// int var;
// int *ptr;//一级指针
// int **pptr,***ppptr;//二级指针,三级指针
// var = 3000;
// ptr = &var;//var变量的地址赋给ptr
// pptr = &ptr;//表示将ptr存放的地址赋给pptr
// ppptr = &pptr;
// printf("var的地址=%p var=%d\n", &var, var);
// printf("ptr的本身的地址=%p ptr存放的地址=%p *ptr=%d\n", &ptr, ptr, *ptr);
// printf("pptr本身地址=%p pptr存放的地址=%p **pptr=%d\n", &pptr, pptr,**pptr);
// printf("ppptr本身地址=%p ppptr存放的地址=%p ***ppptr=%d\n", &ppptr, ppptr, ***ppptr);
// getchar();
// return 0;
//}
指针传递:
//#include<stdio.h>
//void test2(int *p);//函数声明,接收int*
//void main() {
// int num = 90;//
// int *p = #//将num的地址赋给p
// test2(&num);//传地址
// printf("\nmain()中的num=%d", num);//num=91
// test2(p);
// printf("\nmain()中的num=%d", num);//num-92
// getchar();
//
//}
//void test2(int *p) {
// *p += 1;//*p就访问num的值
//}
//#include<stdio.h>
函数声明
//double getAverage(int *arr, int size);
//double getAverage2(int *arr, int size);
//int main() {
// //带有5个元素的整数组
// int balance[5] = { 1000,23,14,53,342 };
// double avg;
// //传递一个指向数组的指针作为参数
// avg = getAverage(balance, 5);
// //输出返回值
// printf("平均值是:%f\n", avg);
// getchar();
// return 0;
//}
//
//double getAverage(int *arr, int size)
//{
// int i, sum = 0;
// double avg;
// for (i = 0; i < size; ++i)
// {
// //arr[0]=arr+0
// //arr[1]=arr+1个int字节(4)
// //arr[2]=arr+1个int字节(8)
// sum += arr[i];
// printf("\narr存放的地址=%p", arr);
// }
// avg = (double)sum / size;
// return avg;
//}
//
//double getAverage2(int *arr, int size)
//{
// int i, sum = 0;
// double avg;
// for (i = 0; i < size; ++i)
// {
// //arr++=> arr=arr+1个(int)字节改变了arr本身
// sum += *arr;
// printf("\narr存放的地址=%p", arr);
// arr++;
//
// }
// avg = (double)sum / size;
// return avg;
//}