谭浩强c语言教程 指针
; C程序的变量所存放的数据:; ? 占有一定长度的内存 单元 如:int x; x占二字节、二个单元;§7.1 指针变量的声明和初始化;当程序中要用它们的值时: y=i+j+k;;如:用pi, pj, pk来存放i, j, k的地址;显然,pi与i是通过i的地址联系起来的。;二、指针变量的定义形式:;CPU访问内存中数据的方式;变量与地址;;含义;直接访问:按变量地址存取变量值间接访问:通过存放变量地址的变量去访问变量;指针变量;指针变量的引用;1、&:取地址运算符:用于变量名之前,表示该变量 的存储地址。2、*:指针运算符(间接访问)用于指针变量名之前,获取该指针所指目标单元的值。例: main() { int a,b,*point1,*point2; a=100,b=200;point1=&a,point2=&b; printf(“%d,%d\n”,a,*point2);}
&和*两个运算符的优先级别是相同的,结合规律是右结合性:如:若point1=&a; 则 &*point1等价于&a;*&a 等价于 a; (*point1)++等价于a++;;指针的运算;;;例:分析下面程序的功能.main(){ int *p1,*p2,*p,a,b; scanf(“%d,%d”,&a,&b); p1=&a,p2=&b; if(a
main(){ int a,b,c,*p1,*p2,*p3; scanf(“%d,%d,%d”,&a,&b,&c); 运行情况: p1=&a,p2=&b,p3=&c; 输入:9,0,10 exchange(p1,p2,p3); 输出:10,9,0 printf(“%d,%d,%d\n”,a,b,c);};§7.8 指针和数组的关系;定义方法与简单变量指针定义相同,但引用略有不同;? 指针也可用下