首页 / C语言 / C语言中让人头痛的指针和内存
C语言中让人头痛的指针和内存
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了 C语言中让人头痛的指针和内存,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1779字,纯文字阅读大概需要3分钟。
内容图文
指针:也是变量,存放变量的地址。
指针是变量的一个间接,变量是内存的一个间接。
虚拟内存中地址总线确定了你能访问的内存空间。
32位cpu最大的虚拟内存: 2^32 = 4 GB 所以32位的XP使用8G内存并没有什么用。
指针存放的变量地址是一个十六进制的数据表示的一组数据,而并非实际的内存中的内容。
int *pMyInt; pmyint 表示存放的地址,是一块内存地址。 int 表示这块地址里面存放的数据类型 *表示指针变量
指针变量= 指针。描述方便。指针变量所存放的地址里面的值,如图650) this.width=650;" title="屏幕快照 2015-07-25 上午10.17.38.png" src="/upload/getfiles/default/2022/11/11/20221111094015736.jpg" />
*mypointer = 27; 表示mypointer这个地址里面存放的内容是27。
cp oldname newname path 文件复制。 %s 输出字符串。可以接收__func__的值。
函数调用的时候是进行值传递的。
变量作用域
文件作用域变量也被称为全局变量。
%p 打印变量地址。用&变量名赋值。pintf(“ %p “,&numdots);
extern int numDots;//声明numDots是一个外部变量,其是一个全局变量,在其他部分声明过了。
文件作用域是在该文件中一个有用的,通过static关键字声明该变量是在这个文件中才有用。(static int doger = 3;)一个在所有函数之外定义的变量具有文件作用域。
函数作用域,它只适用于goto语句使用的标签,函数作用域意味着一个特定函数中的goto标签对该函数中的任何地方的代码都是可见的,无论该标签出现在哪一个代码块中。
使用全局变量的时候,编译需要把两个文件一起编译 gcc -o first.c second.c
C变量有两种存储时期:静态存储时期,动态存储时期。如果一个变量具有静态存储时期,它在程序执行期间一直存在,具有文件作用域的变量具有静态存储时期。
具有代码块的变量一般情况下具有自动存储时期。
函数原型作用域 void change(int *); 适用于函数原型中使用的变量名。从变量到定义处一直到原型的结尾。
栈区(系统来管理内存)是动态变化的。栈区下面有一段空闲的空间。栈是先进先出。高地址向低地址扩展。
高地址(命令行或者环境变量)
堆区(内存需要程序员来负责管理,申请和释放)由低地址向高地址扩展使用。
bss区域 全局变量的未初始化区域。
init data 初始化数据区 全局变量已初始化数据区域。
代码区 指令存放在代码区。该区域权限为只读。共享。被保护区域。
内存分了七个区域
650) this.width=650;" src="/upload/getfiles/default/2022/11/11/20221111094016070.jpg" title="内存图.png" />
650) this.width=650;" title="屏幕快照 2015-07-25 下午4.28.58.png" src="/upload/getfiles/default/2022/11/11/20221111094015736.jpg" />650) this.width=650;" title="694557.png" src="/upload/getfiles/default/2022/11/11/20221111094015736.jpg" />
在声明变量的同时给其赋值叫做初始化。 int myint=100; 存放在数据区的常量区。
字面常量存放在数据区(init data区域)
在函数内部声明的变量都存放在栈区。
全局变量和函数返回是另外两种在不同函数中共享数据的机制。全局变量前按照习惯要加一个g。例如:int gmyInt。
return 的作用是返回到函数调用的地方。
变量存放地址图
原文:http://wenran.blog.51cto.com/9428559/1678364
内容总结
以上是互联网集市为您收集整理的 C语言中让人头痛的指针和内存全部内容,希望文章能够帮你解决 C语言中让人头痛的指针和内存所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。