下面介绍两个和指针有关的运算符 冷(1)&取地址运算符 令C语言中提供了取地址运算符&,它是一个单目运算符,结 合性自右向左,它的功能是取变量的地址。其一般形式为: &变量名; 例如,&a表示变量a的地址,&b表示变量b的地址。变量本 身必须预先说明 令注意:&在形式上虽然与位操作中的“按位与”运算符完全 相同,但“按位与”运算符是双目运算符,而此处的取地址 运算符为单目运算符,二者在使用上不会发生混淆 下面是一个使用“&”运算符的例子
下面介绍两个和指针有关的运算符。 ❖ (1)&取地址运算符 ❖ C语言中提供了取地址运算符&,它是一个单目运算符,结 合性自右向左,它的功能是取变量的地址。其一般形式为: ❖ &变量名; ❖ 例如,&a表示变量a的地址,&b表示变量b的地址。变量本 身必须预先说明。 ❖ 注意:&在形式上虽然与位操作中的“按位与”运算符完全 相同,但“按位与”运算符是双目运算符,而此处的取地址 运算符为单目运算符,二者在使用上不会发生混淆。 ❖ 下面是一个使用“&”运算符的例子
用“&”运算符查看变量和数组地址示例 iNclude<stdio. h> void maino int a=2: float b=3: double c=3 char d5: printf("address of a is:%pn",&a);/输出变量a的地址* printf("address of b is:%pn",&b);/输出变量b的地址* printf("address of c is:%pn",&c);/*输出变量c的地址 printf("address of array d is:%pn;o);/输出数组d的首地 址*
用“&”运算符查看变量和数组地址示例 #include<stdio.h> void main() { int a=2;float b=3;double c=3; char d[5]; printf("address of a is:%p\n",&a); /*输出变量a的地址*/ printf("address of b is:%p\n",&b); /*输出变量b的地址*/ printf("address of c is:%p\n",&c); /*输出变量c的地址*/ printf("address of array d is:%p\n",d); /*输出数组d的首地 址*/ }
运行结果为: C: \"E: \C\ test\ Debug test.exe address of a is: 0012FF7C address of b is: 0012FF78 address of c is: 0012FF70 address of array d is: 0012FF68 Press any key to continue
运行结果为:
(2)指针运算符 指针运算符“*”是单目运算符,其结合性为自右至 左,用来表示指针变量所指的变量。在“*″运算符 之后的变量必须是指针变量。 变量与指针的存储关系 3000 3000 3002 3001 -3002 3003 3004 12.34 X 3005 3006 3007
(2)*指针运算符 ❖ 指针运算符“*”是单目运算符,其结合性为自右至 左,用来表示指针变量所指的变量。在“*”运算符 之后的变量必须是指针变量。 ❖ 变量与指针的存储关系
引用指针变量示例 include<stdio. h> void maino nta=50,*p;/声明整型指针变量p* p=&a; printi(po=%dn",*p);/输岀指针变量p所指向变量 的值* p=100 printf( a=%dn", a)
引用指针变量示例。 #include<stdio.h> void main() { int a=50,*p; /*声明整型指针变量p*/ p=&a; printf("*p=%d\n",*p); /*输出指针变量p所指向变量 的值*/ *p=100; printf("a=%d\n",a); }