指针的基本知识

指针

一、指针是什么

1、指针是什么?

指针理解的
2个要点:1. 指针是内存中一个最小单元的编号,也就是地址;
2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量
总结:指针就是地址,口语中说得指针通常值得是指针变量

2、指针变量

我们可以通过&(取地址操作符)取出变量的内存真实地址,吧地址可以存放到一个变量中,这个变量就是指针变量。

实例

#include <stdio.h>
        {
   
            int a=10;
            int *p = &a;
            return 0;

        }

总结:指针变量,用来存放地址的变量。(存放在指针中的值都被当成地址处理)
一个小的单元到底是多大(一个字节)

如何编址
经过仔细地计算机和权衡我们发现一个字节给一个对应的地址是比较合适的。
对于32位的机器,假设有32根地址线,那么假设每根地址线在寻址的时候产生高电平(高电压)和低电平(低电压)就是(1/0);
那么32根地址线就会产生:2的32次方个地址。
这里我们可以理解
在32位的机器上,地址是32个0和1组成二进制序列,那地址就得用4个字节的空间来储存,所以一个指针变量的大小应该是4个字节。
那如果在64位机器上,如果有64个地址线那一个指针变量的大小是8个字节,才能存放一个地址。

总结一下
指针是用来存放地址的;
指针的大小在32位平台是4个字节,在64位平台是8个字节。

二、 指针和指针的类型

当有这样的代码

   int num = 10;
    p=&num

要讲&num(num的地址)保存到p中,我们知道p就是一个指针变量那他的类型是什么样的?

   char *pc=null;
    int *pi=null;
    short *ps=null;
    long *pl=null;
    float *pf=null
    double *pd=null

指针的定义方式是 type + *

其实就是:
char类型的指针就是为了存放char类型变量的地址。
short
类型的指针就是为了存放short类型变量的地址。
int*类型的指针就是为了存放int类型变量的地址。
以此类推

2.1指针+ - 整数

#include <stdio.h>
int main()
{
   
    int n = 10;
    char *pc = (char*)&n;
    int *pi = &n;
    printf("%p\n",&n);
    printf("%p\n",pc);
    printf("%p\n",pc+1);
    printf("%p\n",pi);
    printf("%p\n",pi+1
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值