正在加载图片...
靳润昭C语言教程讲义 2001年2月17日 swap (int *ptl, int *pt2) lint temp kptl=xpt exchange(int *ql, int *g2, int *q3) I if(*q1<*g2)swap(ql, g2) if(*q1<*g3)swap(ql, g3) if(=g2<*q3)swap(g2, g3) main int a, b, c, *pl, * kp2, *p3 scanf(%d, %d, %d", &a, &b, &c) pl=&a;p2=&b;p3=& exchange(p1, p2, p3) printf("\n%d, %d, %d \n,a, b, c) 10.24指针变量几个问题的进一步说明 指针变量可以进行某些运算,但其运算的种类是有限的。它只能进行赋值运算和部分算 术运算及关系运算。 1.指针运算符 1)取地址运算符&:取地址运算符&是单目运算符,其结合性为自右至左,其功能是取变量 的地址。在 scanf函数及前面介绍指针变量赋值中,我们己经了解并使用了&运算符。 2)取内容运算符*:取内容运算符*是单目运算符,其结合性为自右至左,用来表示指针变 量所指的变量。在*运算符之后跟的变量必须是指针变量 需要注意的是指针运算符*和指针变量说明中的指针说明符*不是一回事。在指针变量说 明中,"*"是类型说明符,表示其后的变量是指针类型。而表达式中出现的*则是一个运 算符用以表示指针变量所指的变量 【例10.6】 t a=5, p printf ( %d",*p) 表示指针变量p取得了整型变量a的地址 printf("%d",*p)语句表示输出变量a的值 2.指针变量的运算 1)赋值运算:指针变量的赋值运算有以下几种形式。 第10页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第10页 swap(int *pt1,int *pt2) {int temp; temp=*pt1; *pt1=*pt2; *pt2=temp; } exchange(int *q1,int *q2,int *q3) { if(*q1<*q2)swap(q1,q2); if(*q1<*q3)swap(q1,q3); if(*q2<*q3)swap(q2,q3); } main() { int a,b,c,*p1,*p2,*p3; scanf("%d,%d,%d",&a,&b,&c); p1=&a;p2=&b; p3=&c; exchange(p1,p2,p3); printf("\n%d,%d,%d \n",a,b,c); } 10.2.4指针变量几个问题的进一步说明 指针变量可以进行某些运算,但其运算的种类是有限的。它只能进行赋值运算和部分算 术运算及关系运算。 1. 指针运算符 1) 取地址运算符&:取地址运算符&是单目运算符,其结合性为自右至左,其功能是取变量 的地址。在 scanf 函数及前面介绍指针变量赋值中,我们已经了解并使用了&运算符。 2) 取内容运算符*:取内容运算符*是单目运算符,其结合性为自右至左,用来表示指针变 量所指的变量。在*运算符之后跟的变量必须是指针变量。 需要注意的是指针运算符*和指针变量说明中的指针说明符*不是一回事。在指针变量说 明中,“*”是类型说明符,表示其后的变量是指针类型。而表达式中出现的“*”则是一个运 算符用以表示指针变量所指的变量。 【例 10.6】 main(){ int a=5,*p=&a; printf ("%d",*p); } 表示指针变量 p 取得了整型变量 a 的地址。printf("%d",*p)语句表示输出变量 a 的值。 2. 指针变量的运算 1) 赋值运算:指针变量的赋值运算有以下几种形式
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有