C语言 --- 初级指针
1.内存的访问:直接访问,间接访问.
直接访问:int a = 0;直接对a赋值.选一个内存地址,让他存20这个数.
a += 10;
a变量本身就代表这个内存单元,代表那个单元格,四个字节.通过变量堆a赋值或者取值,实现对内存单元的访问.
间接访问: 通过内存单元的编号(地址)以及数据所占字节数访问内存中的数据.用指针实现
(电脑内存的计算:2G内存 0~2的31次方-1字节,每个字节有8位bit由01组成);
2. 指针:就是内存地址.内存地址简称为指针.
&a 是指a的地址.printf("%p",&a);分配的地址是由系统分配的.打印的&a是第一个字节所占的地址.
3. 指针变量: 存储内存地址的变量
int a = 6;a是整型变量;
如果a存的是0x7fff5fbff86c,a就是指针变量;
4. 定义指针变量
int a = 10;
int *p = &a;(p是变量,p存的是一个地址.)此时*仅仅起到标识作用,告诉编译器p是一个存放地址的变量.有些人这样写(int *)p = &a;
5. 使用*访问变量的内容; printf("%d",*p);p是一个地址,p前加一个*代表要把地址里面的值取出来.到底如何取?p代表首地址,取多少字节取决于定义指针时的类型.此时就是用指针间接访问了地址的内容.此时是读取此内存内容.
6. *操作符是对p里面的内容进行操作. *p = 40;此时a = 40;
7. 指针的定义,赋值.int *p = NULL;NULL恒等于0,是内存的第一个地址.
int a = 5;
p = &a; 赋值
8. 指针的类型
int *p = &a;整型指针p指的是a的首地址,然后连续取该型占的字节.
9. int *:整型指针占8个字节(64位操作系统),4个字节(32位操作系统).
sizeof(p)
C语言 --- 初级指针的更多相关文章
- C语言中指针和数组
C语言数组与指针的那些事儿 在C语言中,要说到哪一部分最难搞,首当其冲就是指针,指针永远是个让人又爱又恨的东西,用好了可以事半功倍,用不好,就会有改不完的bug和通不完的宵.但是程序员一般都有一种迷之 ...
- 浅谈c语言的指针
对于非计算机专业的同学,c语言的指针往往就是老师的一句“指针不考“就带过了.c语言的指针号称是c语言的灵魂,是c语言中最精妙的部分. 指针本质上也是变量,也就是一段内存,只是他的特殊之处是他存储的数据 ...
- C#委托与C语言函数指针及函数指针数组
C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用 ...
- C语言二重指针与malloc
(内容主要源于网上,只是加入了些自己的剖析) 假设有一个二重指针: char **p; 同时有一个指针数组 char *name[4]; 如何引用p呢? 首先我们有程序代码如下 #include &l ...
- C语言函数指针基础
本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...
- 为什么C/C++语言使用指针
这是参加面试时,面试官问的一道开放性题目. 问题是:为什么C/C++语言使用指针? 这个问题一问出来,直接被面试官秒杀了,面试官大神,你怎么不按套路出牌啊? 说好的malloc和new的区别呢?说好的 ...
- C语言的指针变量
C语言的指针变量 在C语言中,变量是固定范围的存储空间,它存储的是赋给他的值, 比如: ; /* 这里是定义一个整型变量a,并把12这个值存储在a的地址空间上 这个地址空间是系统随机分配的,对用户是透 ...
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
Android For JNI(五)--C语言多级指针,结构体,联合体,枚举,自定义类型 我们的C已经渐渐的步入正轨了,基础过去之后,就是我们的NDK和JNI实战了 一.多级指针 指针的概念我们在前面 ...
- “对外部(局部)变量的访问”是C语言函数指针的最大弱点
1.“对外部(局部)变量的访问”是C语言函数指针的最大弱点 . #include <stdio.h> #include <stdlib.h> /* 结构体定义 */ struc ...
随机推荐
- 函数柯里化与偏函数+bind
简单理解: 1,函数柯里化就是把多参数函数分解为多return的单参数函数: 举个例子(伪代码): function func (a, b, c){ return } 柯里化为 function fu ...
- 2016"百度之星" - 初赛(Astar Round2A)1006 Gym Class(HDU5695)——贪心+拓扑排序
分析:首先,利用贪心可知,如果要所有人的分数和最高,需要把序号大的优先放在前面.其次,对于a的前面不能为b,那么只能a在b前面了,那么就建立一条从a到b的边,并且b的入度加1.然后就是拓扑排序了.要分 ...
- 使用fui(Find Unused Imports)扫描工程中不用的类
为了给APP提速,需要定期清理不用的类 fui(Find Unused Imports)是开源项目能很好的分析出不再使用的类,准确率非常高,唯一的问题是它处理不了动态库和静态库里提供的类,也处理不了C ...
- .net 数据导出
安装npoi,下面是具体的C#代码: public static XSSFWorkbook BuildWorkbook(DataTable dt) { var book = new XSSFWorkb ...
- MongoDB系列二:MongoDB安装过程
一.MongoDB安装,以Linux系统安装为例:(下载:www.mongodb.org 注意使用stable版本) 1.下载最新版本的MongoDB安装包,wget http://fastdl.mo ...
- SQL和HQL 区别浅析!!!
hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性 sql是面向数据库表查询,格式:from + 表名 + where + 表中字段 1.查询 一般在hiber ...
- springmvc源码解读(简介)
1.客户端请求提交的DispatcherServlet 2.由DispatcherServlet控制器查询一个或者多个HandlerMapping,找到处理请求的Controller. 3.Dispa ...
- shell 从键盘读取输入时删除输入的字符
[参考文章]:stty命令的用法全解 [参考文章]:shell——read时退格异常(shell修改删除符) stty srase ^h read -p "请输入参数信息" 在 ...
- OUC_Summer Training_ DIV2_#7 718
是18号做的题啦,现在才把报告补上是以前不重视报告的原因吧,不过现在真的很喜欢写报告,也希望能写一些有意义的东西出来. A - Dragons Time Limit:2000MS Memory ...
- RHEL 7.6系统安装配置图解教程