嵌入式C语言4.1 C语言内存空间的使用-指针
指针:就是内存资源的地址、门牌号的代名词
假如你所在的城市是一个内存(存储器),如果找到你家,就是通过你的家庭住址(指针)寻找,而你家里的摆设面积之类的就是内存的内容(指针指向的内容)。
指针变量:存放指针这个概念的盒子
c语言编译器对指针这个特殊的概念,有两个疑问?
1. 分配一个盒子,盒子要多大??
在32bit系统中,指针就4个字节
在64bit系统中,指针就8个字节


可以看出一个系统中,所有指针的内存大小是一样的!
2. 盒子里存放的是地址,所指向内存的读取方式是什么?
我们一般看到
int * p //表达的是,指针p,她是以int4个字节的方式读取地址,也就是一次性读取四个字节。
同理 char * p //指针p,一次性读取1个字节。
这个 int * 或者 char * 可以理解为数据模子
指针指向内存空间,一定要保证合法性。


嵌入式C语言4.1 C语言内存空间的使用-指针的更多相关文章
- C语言中计算变量占用内存空间
		C语言中计算变量占用内存空间 在C语言中通常用[sizeof]运算符计算变量占内存空间,如下面的例子: 
- C语言malloc()函数:动态分配内存空间
		头文件:#include <stdlib.h> malloc() 函数用来动态地分配内存空间(如果你不了解动态内存分配,请查看:C语言动态内存分配及变量存储类别),其原型为:void* m ... 
- C语言calloc()函数:分配内存空间并初始化——stm32中的应用
		经常在代码中看到使用malloc来分配,然后memset清零,其实calloc更加方便,一句顶两句~ 头文件:#include <stdlib.h> calloc() 函数用来动态地分配内 ... 
- 嵌入式C语言4.3 C语言内存空间的使用-指针与运算符
		1. ++.--.+.- int a=100; a+1; 对比: int *p=xxx; [0x12] p+1; [0x12+1*sizeof(*p)] 指针的加法(减法)运算, ... 
- 嵌入式C语言4.2 C语言内存空间的使用-指针与修饰符:const,volatile,typedef
		const:变量,只读[不能变] 内存属性: 1. 内存操作的大小 2.内存的变化性,可写可读 char *p; const char *p; 描述字符串,p指向的内容是只读的,不可再次修改 ... 
- 使用malloc分别分配2KB,6KB的内存空间,打印指针地址
		#include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> i ... 
- 使用malloc分别分配2KB的空间,然后用realloc调整为6KB的内存空间,打印指针地址
		#include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> i ... 
- 【C/C++】C语言嵌入式编程修炼·背景篇·软件架构篇·内存操作篇
		C 语言嵌入式系统编程修炼之一:背景篇 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力.无疑,汇编语言具备这样的特质.但是,归因于汇编语言 ... 
- 嵌入式-C语言基础:malloc动态开辟内存空间
		#include<stdio.h> #include<stdlib.h> int main() { // char *p;//定义一个野指针:没有让它指向一个变量的地址 // ... 
随机推荐
- Django文件上传下载与富文本编辑框
			django文件上传下载 上传 配置settings.py # 设定文件的访问路径,如:访问http://127.0.0.1:8000/media/就可以获取文件 MEDIA_URL = '/medi ... 
- Linux常用命令操作文档
			Ls命令:列出目录内容 选项 长选项 含义 -a --all 列出所有文件,包括隐藏的文件 -d --directory 指定一个目录 -F --classify 在每个列出的名字后面加上类型指示符( ... 
- Mysql一些概念,基本没啥用,
			关系型数据库管理系统(RDBMS):是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据.特点:1.数据以表格的形式出现2.每行为各种记录名称3.每列为记录名称所对应的数 ... 
- 上传.cgi在252板子上跑
			1.windows下写好.c程序 2.进入linux,准备交叉编译 arm-hisiv600-linux-gcc -g -Wall -o xxx.cgi xxx.c(交叉编译工具取决于板子) 3.把. ... 
- elasticsearch 深入 —— Top Hits Aggregation
			Top Hits Aggregation top_hits指标聚合器跟踪正在聚合的最相关文档. 此聚合器旨在用作子聚合器,以便可以按桶聚合最匹配的文档. top_hits聚合器可以有效地用于通过桶聚合 ... 
- linux--mysql的安装与配置
			linux centos下,mysql安装有三种方式:二进制tar包安装,rpm安装,yum安装(最简单) 查看有没有安装过: yum list installed mysql* rpm -qa | ... 
- elasticsearch 进行聚合+去重查询
			转载:https://www.jianshu.com/p/c03c3c8bf583 以客户customer为例 我想查询每日的客户数. 先按照日期分桶,然后在桶内按照 姓名来去重 来计算客户数(实际会 ... 
- shell脚本检索所有mysql数据库中没有primary key的表
			1.mkdir -p /root/scripts/ 2. cd /root/scripts/ vim query.sql,代码如下: SELECT CONCAT(t.table_schema,&quo ... 
- ubuntu 彻底删除软件
			无法获取 dpkg 前端锁 解决办法如下:1.终端输入 ps aux ,列出进程.找到含有apt-get的进程,直接sudo kill PID. 2.强制解锁,命令sudo rm /var/cach ... 
- 安装Windows与CentOS双系统
			1.安装Windows系统 安装过程除了分区时要预留出部分空间来安装CentOS之外,其它操作与正常安装一样. 2.安装CentOS系统 使用光盘引导安装,因安装为服务器版,建议选择无界面,最小化安装 ... 
