文章目录

  • 内存
    • 内存的大小
  • 指针定义
  • 指针变量是多大

内存

讲到指针,我们肯定会提到内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

内存的大小

内存有4g,8g,16g,32g
这个大的内存我们该如何使用?
我们将内存划分成一个一个小的内存单元
将每个内存单元进行编号

一个内存单元是多大?
一个内存单元是一个字节,如果一个内存单元是一个bit就太浪费了,bit只能存储1或0

内存单元的编号如何产生的?
常见的是32位和64位机器
32位:
32根地址线/数据线
地址线-电线-通电
电信号转换成数字信号1/0
00000000000000000000000000000000可以产生2^32次方地址

内存单元是有编号的,编号就是内存单元的地址

#include<stdio.h>
int main()
{int a = 0;printf("%p",&a);//&取地址得到的是首个地址return 0;
}

指针定义

内存单元都有编号,这个编号就是地址,我们把这个地址叫做指针

#include<stdio.h>
int main()
{int a = 10;int* pa = &a;//所以我们把pa叫指针变量//*告诉我们ps是个指针变量,int告诉我们pa指向的对象是int类型的*pa;//*在这个时候为解引用操作符,通过pa中存放的地址,找到pa指向的内容return 0;
}

指针变量是多大

//32位平台下
#include<stdio.h>
int main()
{int a = 0;char b = 0;int* pa = &a;int* pb = &b;printf("%d",sizeof(pa));//大小为4个字节printf("%d",sizeof(pb));//大小为4个字节return 0;
}
//32位平台为4个字节,32位平台上默认是4个字节
//64位平台为8个字节,64位平台上默认是8个字节
//它的逻辑地址有2的64次方,大概1800万tb
//但是我们现实生活中不可能需要这么大的地址去存储我们所需要的内容

我们发现都是4,这说明指针大小是相同的,指针是用来存放地址的,指针需要多大空间,取决于地址的存储需要多大空间

注:编译器的x64和x86只是模拟操作系统的环境,实际指针的大小需要看操作系统的位数

指针--指针的创建和指针的大小相关推荐

  1. C语言创建指针需要给大小吗,如何用c语言创建一个指针(示例代码)

    正如我们所知,在c语言中,char指针逐字节遍历内存,即每次1字节,每次整数指针4字节(在gcc编译器中),每次2字节(在TC编译器中). 例如: char *cptr; // if this poi ...

  2. c语言指针变量字节,C语言指针变量类型和大小

    指针变量作为C语言中的特殊数据类型,除了用于存储内存地址之外,它与其他类型比较是否具有其他特点呢?接下来对指针类型进行分析,剖析指针类型的特点. 指针的大小与其指向的内存中存储的变量类型无关,它只与计 ...

  3. 【C 语言】二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 | 每个 一级指针 指向不同大小内存 | 精准分配每个 一级指针 指向的内存大小 )

    文章目录 一.二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 ) 二.完整代码示例 一.二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 ) 博客 [C 语言]二级指针案例 ( ...

  4. 【C 语言】字符串 一级指针 内存模型 ( 指定大小字符数组 | 未指定大小字符数组 | 指向常量字符串的指针 | 指向堆内存的指针 )

    文章目录 一.字符串 一级指针 内存模型 1.指定大小字符数组 2.未指定大小字符数组 3.指向常量字符串的指针 4.指向堆内存的指针 一.字符串 一级指针 内存模型 #include <std ...

  5. c语言创建新指针,如何用c语言创建一个指针

    您总是可以将指针强制转换为整数,即整数大小比系统中使用的字节指针大3位.然后在向左移动3位后移动指针.然后将位信息存储在最低有效3位上. 然后可以用正常算术递增该整数"位指针". ...

  6. C++智能指针使用指南 part2:智能指针本身的方法以及使用建议

    目录 往期文章 智能指针本身的方法 对于unique_ptr 对于shared_ptr 对于weak_ptr 使用建议 1.使用工厂函数而非new构造对象 2.在类内部调用其他类的方法 3.在某类内部 ...

  7. 【C语言指针】 指针+-整数、指针-指针、解引用、指针数组、二级指针、结构体声明、初始化、传参

    目录 一.指针 1.指针是什么 1.1.一个单元1个字节 2.指针和指针类型 2.1.指针类型的意义 ① 解引用 ② + -整数 例:把每个整形里放1 每个字节里放1 总结: 3.野指针 3.1.野指 ...

  8. 指针数组,数组指针,函数指针,函数指针数组 ,指向函数指针数组的指针

    首先有个问题:指针和数组有什么关系呢? 答案:什么关系都没有. 指针就是指针,在32位平台下,永远占4个字节,其值为某一个内存的地址. 数组就是数组,其大小与元素的类型和个数有关.定义数组时必须指定其 ...

  9. c语言中字符指针变量输入,C语言指针基础知识实例讲解

    对程序进行编译的时候,系统会把变量分配在内存单位中,根据不同的变量类型,分配不同的字节大小.比如int整型变量分配4个字节,char字符型变量分配1个字节等等.被分配在内存的变量,可以通过地址去找到, ...

  10. Go 学习笔记(13)— 指针定义、指针特点、空指针、指针数组、指向指针的指针、指针作为函数入参

    1. 复合数据类型 Go 语言基本的复合数据类型有指针.数组.切片.字典.通道.结构和接口等.格式如下: * pointerType // 指针类型, [n]elementType // 数组类型, ...

最新文章

  1. CTF-杂项与密码学之工具使用汇总(二)
  2. graphpad的折线图x轴自定义_Graphpad Prism绘制折线图
  3. velocity参数重新赋值_Velocity(5)——#set指令
  4. 联想计算机BIOS开启Intel-vx,如何在计算机BIOS或UEFI固件中启用Intel VT-x | MOS86
  5. Zend_Form 创建、校验和解析表单的基础--(手冊)
  6. 克制懒惰之飞鸽传书版
  7. 基础算法 —— 递归/递推 —— 汉诺塔问题(Hanoi)
  8. C++笔记整理(参考整理自各大博客)
  9. java package 路径_java文件路径问题及Eclipse package,source folder,folder区别及相互转换...
  10. ubuntu16.04安装red5
  11. java 读文件时,readline的问题
  12. MySQL8的URL和Driver的写法
  13. 统计系统技术方案-clickhouse
  14. uniapp如何分享文件到微信 文件分享
  15. 限制网页只能在微信浏览器打开
  16. K3实现按虚拟件/组件发料
  17. 孩子为什么不愿意再跟家长沟通?家长该怎么办
  18. 椭圆方程 matlab,五点差分法(matlab)解椭圆型偏微分方程
  19. POJ1608 Banal Tickets
  20. MySql数据结构、索引优化原则(Java劝退师)

热门文章

  1. Stylized NeRF 水记(NeRF的风格化)
  2. 低照度图像 颜色恢复 matlab,低照度图像修复方法总结
  3. 蔚来:汽车行业变革时代的人才招聘与培养战略
  4. Python 淘宝系列(三): 模拟登陆成功后获取购物车信息
  5. STM32+光敏模块
  6. java云闪付,第三方支付-银联云闪付开发教程
  7. 如何快速提高网站用户体验之3大绝招:快、准、狠
  8. uniapp保存图片_uni-app项目保存图片到相册
  9. fastadmin 阿里云oss解决访问图片是下载
  10. 《四叶游戏》:梦想执念·棒球1号位