C语言学习第十天

指针:

  1. 让C语言变得简洁、高效。
  2. 直接操作硬件。
  3. 通过直接操作内存,提供一种对变量的间接访问形式。
  4. 访问一些没有名字的空间。

概念:

  1. 地址:用来区分内存当中不同字节的编号。
  2. 指针:指针就是地址,地址就是指针,指针具有指向的概念。
    1. .指针变量:用来存放指针(地址)的变量,使用变量
      1. 32位操作系统  cpu和内存间32根地址总线  所有类型指针变量占4个字节        
      2. 64位操作系统  cpu和内存间64根地址总线  所有类型指针变量占8个字节

运算符

       1.&运算符

       (获得变量在内存空间中的首地址)

              (*注意:该运算符只能搭配左值)

              值:获得变量在内存空间中的首地址

类型:对变量取地址会使类型升级

int -> int *

char -> char *

double -> doule*

2.*运算符

       到地址空间中找值

       (*注意: *只能搭配指针使用)

       值:获得指针指向空间中的值

       类型:对地址取*操作,会让地址类型降级

       int * -> int

       char * -> char

double* -> double

&和*同时出现可以抵消

3.指针变量

        1.定义:
        存储类型 数据类型* 变量名;
        int *p;
        char *p;
        double *p;

        2.指针变量和普通变量的区别:

                 a:直接访问,通过变量名找到变量的空间来使用

                *p:间接访问,通过变量在内存中的地址来使用该变量的空间

4.不同指针类型的特点

        (1)算数运算符:

                ++:向内存高地址偏移指向数据类型大小个字节空间

                --:向内存低地址偏移指向数据类型大小个字节空间 

                p - q:两个地址中间相差多少个对应数据类型的数据

                *p++;           
                        等价于:
                        *p;
                        p++;

                        (*p)++;
                        等价于:
                        *p;
                        (*p)++

        (2) *运算符 

                int *p = 0x2000;

                *p:取0x2000开始向下4字节空间中的数据,并按照整形来理解
                char *p = 0x2000;
                *p:取0x2000开始向下1字节空间中的数据,并按照字符来理解
                double *p = 0x2000;
                *p:取0x2000开始向下8字节空间中的数据,并按照双精度浮点数来理解

C语言拆分数字方法:

1987 % 10

1987 / 10

198  %10

198 /  10

19   %10

10 * 0 + 3

10 * a + 3

10 * aa + 3

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值