没有合适的资源?快使用搜索试试~ 我知道了~
1分钟彻底理解C语言指针的概念_C语言中文网1
需积分: 0 2 下载量 47 浏览量
2022-08-04
15:53:45
上传
评论
收藏 1.4MB PDF 举报
温馨提示
试读
2页
9.1 1分钟彻底理解指针的概念 9.2 大话C语言指针变量 9.3 C语言指针变量的运算 9.4 数组指针(指向数组的指针) 9.5 字符串指针(指向字符串的
资源推荐
资源详情
资源评论
2017/10/31
1分钟彻底理解C语言指针的概念_C语言中文网
http://c.biancheng.net/cpp/html/71.html 1/2
C语言 C++教程 Java教程 Linux QQ交流群:588321099 登录|注册
<上一节 下一节> 关注我们: 微信公众号 新浪微博 QQ交流群:588321099
1分钟彻底理解C语言指针的概念
C语言中文网推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:
一对一辅导+一对一答疑+布置作业+项目实践+永久学习。QQ在线,随时响应!
计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如int占用4个字节,char占用1个
字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一
的,根据编号可以准确地找到某个字节。
下图是4G内存中每个字节的编号(以十六进制表示):
我们将内存中字节的编号称为地址(Address)或指针(Pointer)。地址从0开始依次增加,对于32位环境,程序
能够使用的内存为4GB,最小的地址为0,最大的地址为0XFFFFFFFF。
下面的代码演示了如何输出一个地址:
运行结果:
0X28FF3C,0X28FF10
%#X 表示以十六进制形式输出,并附带前缀 0X 。a是一个变量,用来存放整数,需要在前面加 & 来获得它的地
址;str本身就表示字符串的首地址,不需要加 & 。
一切都是地址
C语言用变量来存储数据,用函数来定义一段可以重复使用的代码,它们最终都要放到内存中才能供CPU使用。
数据和代码都以二进制的形式存储在内存中,计算机无法从格式上区分某块内存到底存储的是数据还是代码。当程序被
加载到内存后,操作系统会给不同的内存块指定不同的权限,拥有读取和执行权限的内存块就是代码,而拥有读取和写
入权限(也可能只有读取权限)的内存块就是数据。
CPU只能通过地址来取得内存中的代码和数据,程序在执行过程中会告知CPU要执行的代码以及要读写的数据的地
址。如果程序不小心出错,或者开发者有意为之,在CPU要写入数据时给它一个代码区域的地址,就会发生内存访问
错误。这种内存访问错误会被硬件和操作系统拦截,强制程序崩溃,程序员没有挽救的机会。
CPU访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和
链接成可执行程序后,它们都会被替换成地址。编译和链接过程的一项重要任务就是找到这些名称所对应的地址。
假设变量a、b、c在内存中的地址分别是0X1000、0X2000、0X3000,那么加法运算 c=a+b; 将会被转换成类似
下面的形式:
0X3000=(0X1000)+(0X2000);
1
2
3
4
5
6
7
8
9
10
11
12
教程目录
编程基础
C语言初探
变量和数据类型
输入输出
分支结构和循环结构
C语言数组
C语言函数
预处理命令
C语言指针
9.11分钟彻底理解指针的概念
9.2大话C语言指针变量
9.3C语言指针变量的运算
9.4数组指针(指向数组的指针)
9.5字符串指针(指向字符串的指针)
9.6C语言数组灵活多变的访问形式
9.7指针变量作为函数参数
9.8用C语言指针作为函数返回值
9.9二级指针(指向指针的指针)
9.10空指针NULL以及void指针
9.11注意,数组和指针绝不等价
9.12数组在什么时候会转换为指针
9.13指针数组(每个元素都是指针)
9.14一道题目教你玩转指针数组
9.15指针与二维数组
9.16函数指针(指向函数的指针)
9.17只需一招,彻底攻克C语言指针
9.18用main()函数接收控制台数据
9.19对C语言指针的总结
结构体、位运算以及其他
文件操作
C语言调试
首页/C语言入门教程/C语言指针/
C语言辅导班 C++辅导班 算法/数据结构辅导班
首页 C语言教程 C语言和内存 多文件编程 实例精讲 项目实践 C++教程 更多
每
天
必
听
英
语
杨
百
万
股
票
博
客
加
拿
大
移
民
c
语言
云
点
播
知
网
论
文
查
重
入
口
短
信
验
证
码
接
口
学
术
检
测
c++
语言
培
训
新
生
婴
儿
取名
核
心
期
刊
投
稿
学
习
软
件
编
程
三
亚
养
老
公
寓
紫
外
激
光
打
标机
英
语
口
语
天天
练
减
肥
训
练
营
c
语言
递
归
自
体丰乳
gmt
每
天
必
听
英
语
杨
百
万
股
票
博
客
加
拿
大
移
民
c
语言
云
点
播
知
网
论
文
查
重
入
口
短
信
验
证
码
接
口
学
术
检
测
c++
语言
培
训
新
生
婴
儿
取名
核
心
期
刊
投
稿
学
习
软
件
编
程
三
亚
养
老
公
寓
紫
外
激
光
打
标机
英
语
口
语
天天
练
减
肥
训
练
营
c
语言
递
归
自
体丰乳
gmt
每
天
必
听
英
语
杨
百
万
股
票
博
客
加
拿
大
移
民
c
语言
云
点
播
知
网
论
文
查
重
入
口
短
信
验
证
码
接
口
学
术
检
测
c++
语言
培
训
新
生
婴
儿
取名
核
心
期
刊
投
稿
学
习
软
件
编
程
三
亚
养
老
公
寓
紫
外
激
光
打
标机
英
语
口
语
天天
练
减
肥
训
练
营
c
语言
递
归
自
体丰乳
gmt
01. #include <stdio.h>
02.
03. int main(){
04. int a = 100;
05. char str[20] = "c.biancheng.net";
06. printf("%#X, %#X", &a, str);
07. return 0;
08. }
每
天
必
听
英
语
杨
百
万
股
票
紫
外
激
光
打
标机
知
网
论
文
查
重
减
肥
训
练
营
c
语言
日
语
自
学
资源评论
丽龙
- 粉丝: 22
- 资源: 333
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功