C、指针基础1

1、指针:每个变量都有自己的地址,地址也是数据,就用地址类型的变量来装,地址类型就叫指针类型,即指针类型定义的变量就是专门用来装地址的。 

2、基本数据类型指针:基本数据类型变量的地址,用对应的基本数据类型指针变量来装。

3、声明指针变量:

      short  *pc;

      char   *ps;

注意:1、short*、char*叫指针类型,pc、ps叫指针变量。

           2、*表示 pc、ps是指针变量、类型int a[10]的[],在定义变量时是指示作用。

           3、空格放在哪儿都行,short *pc,short * pc,short* pc。

           4、没有初始化的情况下,数据就是未知的。

4、定义(初始化)指针变量:

          int a=12;                                                                                                                                              int *pa=&a;

          float  b=12.4f;                                                                                                                                      float  *pa=&b;

        注意:

         1、各种类型变量的地址的类型不同,a b变量的地址类型就是变量对应的类型,所以装地址的指针变量的类型,是相应的类型。    

         2、指针的赋值操作又叫指向,即pa指向变量a的地址。

         3、要指向合法的地址空间,非法的空间会异常中断。

         4、类型模型:

           

 5、NULL:

double* pd=NULL;//NULL就是0,用来初始化指针

int as=0;//意义相同。

6、指针的赋值(重新指向)

     double  d=4.5;

    pd=&d;

     注意点:

   1、指针变量也是变量,可以装别的地址,但是要是同类型的。

   2、重新赋值也叫重新指向。

对于一块空间 int a=12,a是这块空间的名字,同名名字可以操作这块空间,&a是空间的地址,通过地址也能操作该空间。

计算规则: *+空间的地址就是该空间名字。(*0x10==a)

                   *+变量的地址就是该变量本身。(*&a==a)

即*&a==a;  

读:printf *&a=12 ,  则a输出12;

写:*&a=34,则a=12 被覆盖成了32。

取地址:&*&a==&a   得到该空间的地址。

7、指针的操作:*

可以通过变量来记录地址值。

int a=12;

int* p=&a;  //p==&a。

可以直接将*&a==a变为*p==a。

即*p与a的用法完全一样。

读:printf *p,输出12;

写: *p=34,原12被覆盖了,a也是34了。

取地址:&*p==&a  取得该空间的地址。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clown_30

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值