1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言位向量机伞_一文读懂C语言精华-指针变量和指向指针的指针

c语言位向量机伞_一文读懂C语言精华-指针变量和指向指针的指针

时间:2020-05-07 05:29:02

相关推荐

c语言位向量机伞_一文读懂C语言精华-指针变量和指向指针的指针

1978年贝尔实验室正式发表C语言,受到众多IT从业者的热捧,即使41年过去了,C语言仍然牢牢占据最受欢迎编程语言前二的位置,许多人的程序开发之路也是从C语言开始的。

编程语言受欢迎排名

C语言简洁紧凑、灵活方便 ,相较于其它高级语言,直接操作地址是面向过程的C语言一大特点,也是C语言的精华所在。

变量的实质是地址

内存是存放数据的空间,变量是在内存中申请的一段空间大小,不同类型的数据占用的字节数不一样。

变量申请

向内存申请了一个变量名为a的int型变量占4字节空间;向内存申请了一个变量名为b的short型变量占2字节空间;向内存申请了一个变量名为c的char型变量占1字节空间。

变量内容存储

使用取地址符&,查看变量a、b、c在内存的地址

变量在内存中的地址

指针变量

数据存放在内存中都会有对应的地址,而这个地址就是指针。C语言中使用指针,可以使程序简洁、紧凑、高效;也可以有效地表示复杂的数据结构;实现动态分配内存。

普通变量和指针变量的区别就是,普通变量的值是可以直接使用的数据,而指针变量的值则存放的是其他变量的地址。指针变量的定义与普通变量定义是一致的,只是在数据类型后加运算符 “*”,比如:

int * p;

定义的p是一个指针变量,可以存放一个整形变量的地址。通过“*”获取p指向的对象内容,运算符 “*” 是间接寻址或者间接引用运算符。当它作用于指针时,将访问指针所指向的对象。

指针变量

变量p、变量a内存分布图

指针变量p指向变量a,p地址的内容是变量a的地址,a地址内容是数据30。

虽然64位系统里指针变量在内存中存放占用都是8个字节宽度,比如:

int * p, char * q; // 通过sizeof()查看都是8个字节

但还是要指定指针的类型,因为利用指针变量进行操作、运算时候,都涉及到指针变量指向的对象数据宽度。

除了通过指针获取内存数据外,还可以通过指针修改内存的内容:

通过指针修改对象值

下面通过程序看一下指针变量的赋值、运算:

指针变量运算

p是地址,p++地址累加,累加的步长正是指针向量的类型int(4个字节)。

指向指针的指针

前面说过可以用指针指向普通变量,那么可不可以在用指针指向指针变量呢?答案是肯定的。

指向指针的指针

程序中指针的指针q指向的对象是指针变量p,指针变量p指向的对象是变量a。按照:&是取地址运算符,*是间接运算符(取的是指针对象),那么**q、*p、a是等价的,*q、p、&a是等价的、q、&p是等价的。

指针指示图

谨记一条原则:所有数据存放在内存都有地址,普通变量的值是数据,指针变量的值是地址,所以指向指针的指针的值还是地址,只是这个地址的值是另一个指针的地址

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。