指针
汇编语言:都是直接操作地址去访问内存单元里面等内容。
C语言作为高级语言:提供通过地言:都是地址访问内存单元的内容。
1、什么叫做地址?
地址就是内存中对每一个字节的编号。
通常一个数据的地址指的是存放这个数据的地址段的首地址。
注意:
1、一个程序在运行是会自动为变量开辟新的内存,地址会变。
2、在同一次运行过程中变量的地址是不会变的。
3、数据段,一个程序是在一个数据段中进行的。
&(取地址运算符):单目运算符,返回一个变量的地址
*(指针运算符):单目运算符,返回的是一个地址里面的变量的数据。
&和*具有相同的优先级,自右向左结合。
什么是指针?
指针是C语言中广泛使用的一种数据类型。
运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串;
并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环,
能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时,
指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。
指针变量的类型说明
对指针变量的类型说明包括三个内容:
(1)指针类型说明,即定义变量为一个指针变量;
(2)指针变量名;
(3)变量值(指针)所指向的变量的数据类型。
其一般形式为: 类型说明符 *变量名;
其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。
例如: int *p1;表示p1是一个指针变量,它的值是某个整型变量的地址。 或者说p1指向一个整型变量。至于p1究竟指向哪一个整型变量, 应由向p1赋予的地址来决定。
再如:
staic int *p2; /*p2是指向静态整型变量的指针变量*/
float *p3; /*p3是指向浮点变量的指针变量*/
char *p4; /*p4是指向字符变量的指针变量*/ 应该注意的是,一个指针变量只能指向同类型的变量,如P3 只能指向浮点变量,不能时而指向一个浮点变量, 时而又指向一个字符变量。
指针变量的赋值
指针变量同普通变量一样,使用之前不仅要定义说明,
而且必须赋予具体的值。未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址,
决不能赋予任何其它数据,否则将引起错误。在C语言中, 变量的地址是由编译系统分配的,对用户完全透明,用户不知道变量的具体地址。
C语言中提供了地址运算符&来表示变量的地址。其一般形式为: & 变量名;
如&a变示变量a的地址,&b表示变量b的地址。 变量本身必须预先说明。设有指向整型变量的指针变量p,如要把整型变量a
的地址赋予p可以有以下两种方式:
(1)指针变量初始化的方法 int a;
int *p=&a;
(2)赋值语句的方法 int a;
int *p;
p=&a;
不允许把一个数赋予指针变量,故下面的赋值是错误的: int *p;p=1000; 被赋值的指针变量前不能再加“*”说明符,如写为*p=&a 也是错误的
学习路线:
1、c语言入门 程序设计-算法-运算符-顺序 分支 循环结构。
2、C语言精通 数组-函数字串符-指针-构造类型-预处理-存储管理-文件操作-数据结构。
3、c++入门 面对对象编程-类和对象-运算符重载-派生于继承,异常处理技术-C++语言标准-数据结构-(双向链表-双向队列-树-图)。
4、c++精通-stl标准模板库(容器-迭代器-算法)正则表达式-boost标准模板库-socket网络编程-大型企业项目实战:-员工信息管理系统-推箱子-俄罗斯方块-服务器-播放器-人工智能。
5、windows高级工程师:win32/mfc-windows高级编程-QT框架编程-大型企业级项目实战项目(人脸识别-车牌识别-局域网远程监控-等项目)
6、linux系统应用程序开发-linux内核构架研究-linux顶级网络服务器开发及搭建。
7、大型企业项目实战(linux内核高级虚拟内存驱动设计-linux网络间谍系统软件-linux内核网络数据劫持-linux网络阅读系统开发
文章最后
怎么快速学C/C++,有什么方法,打算深入了解这个行业的朋友,可以加C/C++学习群:750+579+336,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的C/C++资料和0基础入门教程,欢迎初学和进阶中的小伙伴。
每天晚上20:00我都会开直播给大家分享C/C++游戏编程学习知识和路线方法,群里会不定期更新最新的教程和学习方法,大家都是学习C/C++的,或是转行,或是大学生,还有工作中想提升自己能力的前端党,如果你是正在学习C/C++的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。
喜欢小编的文章的朋友可以关注、收藏、转发、留言,阅读愉快!!