c语言手写指针和乘号,C-学会使用指针(示例代码)
先说:唯手熟尔
指针
指针存储着一个内存空间的地址
定义一个指针
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-学会使用指针(示例代码)相关推荐
- C语言手写二叉树(链式存储结构)
C语言手写二叉树(链式存储结构) 二叉树结构 二叉树基本运算 代码 图例(main函数执行过程如下:) 阶段I 阶段II 阶段III 阶段IV 阶段V 先序遍历输出过程 二叉树结构 二叉树可以用顺序存 ...
- C语言手写栈、手写计算器
C语言实现表达式求值 文章结构 C语言手写栈Struct Stack 后缀表达式求值 中缀表达式转后缀表达式 文章结构 本文尝试通过纯C语言写一个计算器,在Visual Studio和VScode运行 ...
- C语言-手写任务队列
C语言-手写任务队列 文章目录 C语言-手写任务队列 基本概念 头文件 队列实现 基本概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(Firs ...
- C语言手写自定义三维数组
C语言手写三维数组 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleArray及其基本运算 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleAr ...
- C语言手写SDS字符串的实现思路
C语言手写SDS字符串的实现思路 Simple Dynamic Strings (简称 SDS) 是一个 C 语言封装的的字符串,它增强了 C 语言字符串处理的能力. SDS 的 C 语言实现通常包括 ...
- 【线程池】自行准备linux环境,带你手写线程池,只需仅仅150行代码|内存池|API|连接池|应用协议丨C/C++Linux服务器开发
[线程池]自行准备linux环境,带你手写线程池,只需仅仅150行代码 视频讲解如下,点击观看: [线程池]自行准备linux环境,带你手写线程池,只需仅仅150行代码|内存池|API|连接池|应用协 ...
- 【线程池】自行准备linux环境,带你手写线程池,只需仅仅150行代码
[线程池]自行准备linux环境,带你手写线程池,只需仅仅150行代码 视频讲解如下,点击观看: [线程池]自行准备linux环境,带你手写线程池,只需仅仅150行代码|内存池|API|连接池|应用协 ...
- C语言手写魂斗罗(一)
目录 1. 项目介绍 配套视频教程 2. 游戏效果演示 3. 项目准备 4. 创建项目 5. 实现游戏的启动界面 1. 项目介绍 使用C语言,手写魂斗罗经典游戏场景. 配套视频教程 视频讲解整个开发过 ...
- 柔宇发布“手写神器”柔记樱雪白特别版,支持7国语言手写识别
深圳2018年9月26日电 /美通社/ -- 9月23日,柔宇科技在2018北京国际设计周期间首次对外发布柔宇科技的"柔性+"办公教育类升级新品 -- 柔记 RoWrite S 智 ...
最新文章
- 道家遁甲式(又名道家奇门)
- Linux下rz,sz与ssh的配合使用,实现文件传输
- .NET Core 在中国的现状调研
- 在线获取今天是今年的第周几
- 力软java版_力软未来产品发展方向
- 植物大战僵尸之修改阳光
- 眼光独到便能发现刷脸支付带来的商机
- 传统数仓如何转型大数据
- [转] 网站性能优化之------------- 数据库及服务器架构篇
- OSError: [WinError 1455] 页面文件太小,无法完成操作
- MySQL约束- 基础(课堂笔记)
- 傻瓜式免费自助建站系统,菜鸟建站理想工具
- CentOS 7版本下安装NVIDIA显卡驱动
- 压力传感器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- java虚拟机jvm与Java内存模型(JMM)
- python用opencv实现图片的美白磨皮_opencv----人脸美白算法,祛斑,祛痘,磨皮等...
- 大数据面试之Hadoop
- datastage 是什么
- 数据结构和算法之常用 10 种算法
- 干货|Web安全入门基础与思路总结(附思维导图)
热门文章
- pcl中ransac提取直线_复杂场景中的一个图像配准思路
- C 多线程的互斥锁应用RAII机制
- matlab工程计算及应用 课程名称,《 MATLAB 工程计算及应用》教学大纲课程名称MATLAB 工程计算及应用.pdf...
- 智伴机器人安卓怎么设置个人热点_周五到!!宿舍断网怎么办,教你一招
- 云计算机内存不足怎么办,网易云音乐提示内存不足,电脑提示内存不足-
- addcslashes php,php addcslashes函数怎么用
- js 点击侧边栏展示内容_上海SEO优化网站侧边栏一般添加什么内容
- 工业以太网交换机出现温度过高如何处理?
- rs485中继器产品功能特点及应用领域介绍
- 什么叫POE交换机?POE交换机使用方法介绍?