先说:唯手熟尔

指针

指针存储着一个内存空间的地址

定义一个指针

int a;

int * p;

定义一个指针,只需在变量前面加一个 * 号。这里的指针只能存储一个存放整数的内存空间的地址

指针如何存储地址

p = &a;

&叫取地址符。这样整形指针p获得了整型变量a的地址。理解为指针p指向了整型变量a

可以通过指针p来操作变量a。

例如,输出变量a的值

int a=10;

int * p;

p=&a;

printf("%d",* p);

这里的 * 号是间接访问运算符。作用是取得指针p所指向的内存中的值。

C语言中 * 号有三个用途

乘号。加减乘除

声明指针变量。在定义指针变量时使用,如:int * p;

取得指针所指向的内存中的值。简介访问运算符。例如printf("%d",* p);

malloc函数

在内存中存储整数10

int a=10;

malloc(4);

使用malloc函数会从内存中申请分配指定字节大小的内存空间。此处申请的是4个字节。不知道int类型4个字节还可以通过sizeof(int)获取int类型所占字节数。申请好4个字节空间后,就需要用一个指针来指向这个空间。

int * p;

p=(int * )malloc(sizeof(int));

需要注意的是,malloc函数返回类型是void * 类型。void * 表示未确定类型的指针。在C语言和C++,可被强制转换为任何其他类型的指针。此处我们将其强制转化为整形指针

指针存储的是某空间地址,那为什么分不同类型的指针呢?

是为了让系统知道某空间应该取多少个连续内存作为一个数据。

例子

存储整数10的代码如下

#include

#include

int main()

{

int *p;

p=(int * )malloc(sizeof(int));

* p=10;

printf("%d",* p);

return 0;

}

为什么要用如此复杂的办法存储数据?

预先的方法我们必须预先准确的知道所需变量的个数,也就是说我们必须定义出所有变量。定义一百个,程序就只能存储一百个。通过malloc函数我们可以在程序运行的过程中根据实际情况来申请空间

最后:个人觉得指针和malloc函数谁都离不开谁。malloc申请的内存需要指针指示,而指针用来指示一个不确定的空间才发挥了真正作用。

c语言手写指针和乘号,C-学会使用指针(示例代码)相关推荐

  1. C语言手写二叉树(链式存储结构)

    C语言手写二叉树(链式存储结构) 二叉树结构 二叉树基本运算 代码 图例(main函数执行过程如下:) 阶段I 阶段II 阶段III 阶段IV 阶段V 先序遍历输出过程 二叉树结构 二叉树可以用顺序存 ...

  2. C语言手写栈、手写计算器

    C语言实现表达式求值 文章结构 C语言手写栈Struct Stack 后缀表达式求值 中缀表达式转后缀表达式 文章结构 本文尝试通过纯C语言写一个计算器,在Visual Studio和VScode运行 ...

  3. C语言-手写任务队列

    C语言-手写任务队列 文章目录 C语言-手写任务队列 基本概念 头文件 队列实现 基本概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(Firs ...

  4. C语言手写自定义三维数组

    C语言手写三维数组 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleArray及其基本运算 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleAr ...

  5. C语言手写SDS字符串的实现思路

    C语言手写SDS字符串的实现思路 Simple Dynamic Strings (简称 SDS) 是一个 C 语言封装的的字符串,它增强了 C 语言字符串处理的能力. SDS 的 C 语言实现通常包括 ...

  6. 【线程池】自行准备linux环境,带你手写线程池,只需仅仅150行代码|内存池|API|连接池|应用协议丨C/C++Linux服务器开发

    [线程池]自行准备linux环境,带你手写线程池,只需仅仅150行代码 视频讲解如下,点击观看: [线程池]自行准备linux环境,带你手写线程池,只需仅仅150行代码|内存池|API|连接池|应用协 ...

  7. 【线程池】自行准备linux环境,带你手写线程池,只需仅仅150行代码

    [线程池]自行准备linux环境,带你手写线程池,只需仅仅150行代码 视频讲解如下,点击观看: [线程池]自行准备linux环境,带你手写线程池,只需仅仅150行代码|内存池|API|连接池|应用协 ...

  8. C语言手写魂斗罗(一)

    目录 1. 项目介绍 配套视频教程 2. 游戏效果演示 3. 项目准备 4. 创建项目 5. 实现游戏的启动界面 1. 项目介绍 使用C语言,手写魂斗罗经典游戏场景. 配套视频教程 视频讲解整个开发过 ...

  9. 柔宇发布“手写神器”柔记樱雪白特别版,支持7国语言手写识别

    深圳2018年9月26日电 /美通社/ -- 9月23日,柔宇科技在2018北京国际设计周期间首次对外发布柔宇科技的"柔性+"办公教育类升级新品 -- 柔记 RoWrite S 智 ...

最新文章

  1. 道家遁甲式(又名道家奇门)
  2. Linux下rz,sz与ssh的配合使用,实现文件传输
  3. .NET Core 在中国的现状调研
  4. 在线获取今天是今年的第周几
  5. 力软java版_力软未来产品发展方向
  6. 植物大战僵尸之修改阳光
  7. 眼光独到便能发现刷脸支付带来的商机
  8. 传统数仓如何转型大数据
  9. [转] 网站性能优化之------------- 数据库及服务器架构篇
  10. OSError: [WinError 1455] 页面文件太小,无法完成操作
  11. MySQL约束- 基础(课堂笔记)
  12. 傻瓜式免费自助建站系统,菜鸟建站理想工具
  13. CentOS 7版本下安装NVIDIA显卡驱动
  14. 压力传感器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  15. java虚拟机jvm与Java内存模型(JMM)
  16. python用opencv实现图片的美白磨皮_opencv----人脸美白算法,祛斑,祛痘,磨皮等...
  17. 大数据面试之Hadoop
  18. datastage 是什么
  19. 数据结构和算法之常用 10 种算法
  20. 干货|Web安全入门基础与思路总结(附思维导图)

热门文章

  1. pcl中ransac提取直线_复杂场景中的一个图像配准思路
  2. C 多线程的互斥锁应用RAII机制
  3. matlab工程计算及应用 课程名称,《 MATLAB 工程计算及应用》教学大纲课程名称MATLAB 工程计算及应用.pdf...
  4. 智伴机器人安卓怎么设置个人热点_周五到!!宿舍断网怎么办,教你一招
  5. 云计算机内存不足怎么办,网易云音乐提示内存不足,电脑提示内存不足-
  6. addcslashes php,php addcslashes函数怎么用
  7. js 点击侧边栏展示内容_上海SEO优化网站侧边栏一般添加什么内容
  8. 工业以太网交换机出现温度过高如何处理?
  9. rs485中继器产品功能特点及应用领域介绍
  10. 什么叫POE交换机?POE交换机使用方法介绍?