9 指针 ##
取地址运算&
获得变量的地址,它的操作数必须是变量。
#include <stdio.h>
int main()
{
int i=0;
printf("0x%x\n",&i);
printf("%p\n",&i);
return 0;
}
%x
%p
运算符&
scanf("%d",&i);里的&
获得变量的地址,它的操作数必须是变量
int i;printf("%x",&i);
地址的大小是否与int咸通取决于编译器
int i;printf("%p",&i);
&不能取的地址,不能对没有地址的东西取地址。
试试这些&:变量的地址,相邻变量的地址,&的结果sizeof,数组的地址,数组单元的地址,相邻数组单元的地址。
地址跟内存模型有关。

指针:保存地址的变量。

作为参数的指针



指针的运算符&
互相反作用

传入地址

指针的使用
指针常见错误:定义了一个指针,但是没有赋值,没有获得变量地址之前就使用指针。
数组变量是特殊的指针:数组变量本身表达地址,所以int a[10];int *p=a;//无需用&取地址。但是数组的单元表达的是变量,需要用&取地址。a==&a[0]。[]运算符可以对数组做也可以对指针做:p[0]<==>a[0]

浙公网安备 33010602011771号