首页 » Web前端 » php内存指针技巧_高分收藏C措辞初学者必看内存与指针的指南

php内存指针技巧_高分收藏C措辞初学者必看内存与指针的指南

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

工具与事理

指针与内存都是c措辞中的要点与难点

php内存指针技巧_高分收藏C措辞初学者必看内存与指针的指南

内存是一维线性排列的

php内存指针技巧_高分收藏C措辞初学者必看内存与指针的指南
(图片来自网络侵删)

我们来写一个大略的程序:

我们在函数中声明了3个变量,名字分别叫 a b c

我们打印一下这三个变量的地址,结果如下:

这三个地址都是0x开头,是16进制。

可以看出来,这三个数字逐渐减少,并且差值都为4. 也便是字长。

这当然不是有时,c措辞是故意设计成这个样子的。

如下的图可以直不雅观的表述:

指针的基本用法(初识指针)

main0.c:

上述代码无法实现a,b数值的交流。

改为指针类型实当代码如下:

main1.c:

为原来的变量值加上, change函数改为传入&a &b

3和5可以成功的交流。

int a 与 int a都是可以的,被称为指针。
& 取地址符。

我们要引入工具来剖析

须要将实参的地址传到子函数才能改变实参! 如change(&a,&b)

C措辞中int未初始化时,初值为随机

int变量未初始化的默认初值,和变量的类型有关

局部变量,在未初始化情形下,初值为随机值。
C规范对该初值并没有做规定,详细实现由编译器决定。
如VC/VS等编译器,会将初始值值为0xCCCCCCCC,而GCC等编译器则是不可预知的随机值。

静态局部变量,即带static润色的局部变量。
全局变量和静态全局变量,即定义在函数外,不属于任何一个函数的变量。
这几种默认初值为0.

常见问题解答:

◆ 为什么打印地址时,我的打印结果跟上面不一样?同一个代码每次实行,地址的打印结果也不一样

由于每次代码运行过程中,变量的创建都要重新申请内存空间,每次申请的空间是『临时』的,创建时申请空间,利用完自动开释空间

感谢小伙伴的阅读,如果有不错的建议或见地,欢迎在评论区留言,喜好的话,麻烦点个赞和关注哦~~~

标签:

相关文章