2010-10-13 50页 ppt 1MB 16阅读
is_336491
暂无简介
a=5,b=9 max=9,min=55200892010200820102008例6.3 按先大后小的顺序输出a和b两个整数。 7. 多重指针 7. 多重指针 一个指针变量的内容就是内存中某个存储区域的地址,这个存储区域中存放的值可以是一个基本数据类型的数据,也可以是另一个存储区域的地址。我们把这种类型的指针叫做多重指针。二重指针(指向指针的指针)的一般说明形式为: 类型说明符 **指针变量名;二重指针的使用。 main() { int *p1, **p2, i = 10; p1=&i; p2=&p1; }6.3 函数之间地址值的传递void swap(int x,int y) { int temp; temp=x; x=y; y=temp; } void main() { int a=10,b=20; if(a>a>>b; pointer_1=&a; pointer_2=&b; if(a>a>>b; pointer_1=&a; pointer_2=&b; if(a>*p; p=a; inv(p,10); cout<<"The array has been reverted:\n"; for(p=a;p>*p; p=a; inv(p,10); cout<<"The array has been reverted:\n"; for(p=arr;p0) k=j; if(k!=i) { temp=name[i]; name[i]=name[k]; name[k]=temp;} } }例 对字符串排序void print(char *name[],int n) { int i=0; char *p; /*p=name[0];*/ while(i y) z=x; else z=y; return(z); }main() { int max(int ,int), (*p)(); int a,b,c; p=max; scanf("%d,%d",&a,&b); c=(*p)(a,b); printf("a=%d,b=%d,max=%d\n",a,b,c); } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); }1. 用指向函数的指针变量调用函数2. 用指向函数的指针变量作函数参数例 用函数指针变量作参数,求最大值、最小值和两数之和2. 用指向函数的指针变量作函数参数3. 返回指针值的函数函数定义形式: 类型标识符 *函数名(参数表); 例 int *f(int x, int y)3. 返回指针值的函数例 用指针函数实现:有若干学生成绩,要求输入学生序号后,能输出其全部成绩。main() { float score[][4]={{60,70,80,90}, {56,89,67,88},{34,78,90,66}}; float *search(float (*pointer)[4],int n), *p; int i,m; printf("Enter the number of student:"); scanf("%d",&m); printf("The scores of No.%d are:\n",m); p=search(score,m); for(i=0;i<4;i++) printf("%5.2f\t",*(p+i)); } float *search(float (*pointer)[4], int n) { float *pt; pt=*(pointer+n); return(pt); }6.6 有关指针操作的小结1.指针变量是把其它变量的地址作为内容的变量。指针变量的内容可以是0、NULL和一个确定的地址。 2. 地址运算符(&) 返回其操作数的地址。 地址运算符的操作数必须是一个变量(或数组元素)。 3. 指针运算符(*) 又称为“间接引用运算符” ,它表示从相应的存储单元中获取某种类型的数据值。 4. 指针±整数 5. 指针1-指针2 6. 指针的关系运算,如:指针1<指针2 7. 在调用带有参数的函数时,如果调用函数要求被调用函数修改参数的值,应该把参数的地址传递给被调用函数,被调用函数用间接引用运算符(*)修改调用函数中的参数的值。6.6 有关指针操作的小结指针的数据类型指针的数据类型第十章 作业例 下列定义的含义 (1)int *p[3]; (2)int (*p)[3]; (3)int *p(int); (4)int (*p)(int); (5)int *(*p)(int); (6)int (*p[3])(int); (7)int *(*p[3])(int);第十章 作业