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]

 

posted @ 2022-04-16 20:38  石绿  阅读(52)  评论(0)    收藏  举报