正在加载图片...
靳润昭C语言教程讲义 2001年2月17日 ″*p2=*p1;"实际上就是”ji;",前者不仅速度慢而且目的不明。但由于指针是变量,我们可以 通过改变它们的指向,以间接访问不同的变量,这给程序员带来灵活性,也使程序代码编写得 更为简洁和有效 指针变量可出现在表达式中,设 int x, y, *px=&x: 指针变量px指向整数x,则*px可出现在x能出现的任何地方。例如: y=*px+5;/表示把x的内容加5并赋给y*/ ++*px;/*px的内容加上1之后赋给y,++*px相当于++(*px)*/ y=*px++;/*相当于y=*px;px++*/ 【例10.1】 main i int a, b: int *pointer l, *pointer 2 a=100;b=10; pointer l=&a pointer 2=&b printf(%d, %d\n", a, b) printf( %d, %d \n", *pointer 1, *pointer 2) 对程序的说明: 1)在开头处虽然定义了两个指针变量 pointer1和 pointer2,担它们并未指向任何一个 整型变量。只是提供两个指针变量,规定它们可以指向整型变量。程序第5、6行的作 用就是使 pointer1指向a, pointer2指向b。 nter 1 *pointer_ 1 pointer b *pointer 2 2)最后一行的* pointer1和* pointer2就是变量a和b。最后两个 printf函数作用是相 同的 3)程序中有两处出现* pointer1和* pointer2,请区分它们的不同含义 4)程序第5、6行的" pointer1a"和" pointer2=&b"不能写成“* pointer1=&a"和 pointer_2=&b"。 请对下面再的关于“&"和”*"的问题进行考虑: 1)如果已经执行了“ pointer1&a;"语句,则&* pointer1是什么含义? 第6页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第6页 "*p2=*p1;"实际上就是"j=i;",前者不仅速度慢而且目的不明。但由于指针是变量,我们可以 通过改变它们的指向,以间接访问不同的变量,这给程序员带来灵活性,也使程序代码编写得 更为简洁和有效。 指针变量可出现在表达式中, 设 int x,y,*px=&x; 指针变量 px 指向整数 x,则*px 可出现在 x 能出现的任何地方。例如: y=*px+5; /*表示把 x 的内容加 5 并赋给 y*/ y=++*px; /*px 的内容加上 1 之后赋给 y,++*px 相当于++(*px)*/ y=*px++; /*相当于 y=*px; px++*/ 【例 10.1】 main() { int a,b; int *pointer_1, *pointer_2; a=100;b=10; pointer_1=&a; pointer_2=&b; printf("%d,%d\n",a,b); printf("%d,%d\n",*pointer_1, *pointer_2); } 对程序的说明: 1) 在开头处虽然定义了两个指针变量 pointer_1 和 pointer_2,担它们并未指向任何一个 整型变量。只是提供两个指针变量,规定它们可以指向整型变量。程序第 5、6 行的作 用就是使 pointer_1 指向 a,pointer_2 指向 b。 2) 最后一行的*pointer_1 和*pointer_2 就是变量 a 和 b。最后两个 printf 函数作用是相 同的。 3) 程序中有两处出现*pointer_1 和*pointer_2,请区分它们的不同含义。 4) 程序第 5、6 行的“pointer_1=&a”和 “pointer_2=&b”不能写成“*pointer_1=&a”和 “*pointer_2=&b”。 请对下面再的关于“&”和“*”的问题进行考虑: 1) 如果已经执行了“pointer_1=&a;”语句,则&*pointer_1 是什么含义?
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有