在定义指针变量时要注意两点: 指针变量前面的“,表示该变量的类型为指针 例: float"pointer1 指针变量名是 pointer1,而不是 pointer1。 (2)在定义指针变量时必须指定基类型 需要特别注意的是,只有整型变量的地址才能放到指 向整型变量的指针变量中。下面的赋值是错误的 float a: int*pointer- 1 pointer1=8axP将oa型变量的地址放 到脂指向整型变量的指针变量中,错误
在定义指针变量时要注意两点: (1)指针变量前面的“*”,表示该变量的类型为指针 型变量。 例: float *pointer_1; 指针变量名是pointer_1 ,而不是* pointer_1 。 (2) 在定义指针变量时必须指定基类型。 需要特别注意的是,只有整型变量的地址才能放到指 向整型变量的指针变量中。下面的赋值是错误的∶ float a; int * pointer_1; pointer_1=&a; /* 将float型变量的地址放 到指向整型变量的指针变量中,错误 */
10.22指针变量的引用 请牢记,指针变量中只能存放地址(指针) 不要将一个数(或任何其他非地址类型的数据) 赚给一个指针变量 例10.1通过指针变量访问整型变量 include <stdio. h> void main o int a,b; into"pointer 1, pointer 2, a=100b=10; pointer1=&a;/把变量a的地址赋给 ointer 1*/
10.2.2 指针变量的引用 请牢记,指针变量中只能存放地址(指针), 不要将一个整数(或任何其他非地址类型的数据) 赋给一个指针变量。 例10.1 通过指针变量访问整型变量 #include <stdio.h> void main ( ) { int a,b; int *pointer_1,*pointer_2; a=100;b=10; pointer_1=&a; /*把变量a的地址赋给 pointer_1 */
pointer2=&b;/把变量b的地址赋给 pointer 2*/ printf(“%d,%dn,a,b); printf(“%d,%dn”; pointer_1, pointer2); pointer a a *k pointer 1 pointer 2 *k pointer 2
pointer_2=&b; /*把变量b的地址赋给 pointer_2 */ printf(“%d,%d\n”,a,b); printf(“%d,%d\n”,*pointer_1, *pointer_2); }
对“&″和“*"运算符说明: 如果已执行了语句 pointer1=&a; (1)&· pointer1的含义是什么?“&”和“"两 个运算符的优先级别相同,但按自右而左方向结合 因此先进行 pointer1的运算,它就是变量a,再 执行&运算。因此,&* pointer1与&a相同,即变 量a的地址。如果有 pointer2=&* pointer1; 它的作用是将&a(a的地址赋给 pointer2,如果 pointer2原来指向b,经过重新赋值后它已不再指 向b了,而指向了a
对“&”和“*”运算符说明: 如果已执行了语句 pointer_1=&a; (1)&* pointer_1的含义是什么?“&”和“*”两 个运算符的优先级别相同,但按自右而左方向结合, 因此先进行* pointer_1的运算,它就是变量a,再 执行&运算。因此,&* pointer_1与&a相同,即变 量a的地址。如果有pointer_2=&* pointer_1; 它的作用是将&a(a的地址)赋给pointer_2 ,如果 pointer_2原来指向b,经过重新赋值后它已不再指 向b了,而指向了a
pointer 1 pointer a a a pointer 2 pointer a (a)