前言:
当前朋友们对“c语言中的地址用十六进制表示吗”都比较关心,大家都想要学习一些“c语言中的地址用十六进制表示吗”的相关知识。那么小编在网络上收集了一些对于“c语言中的地址用十六进制表示吗””的相关内容,希望你们能喜欢,大家快快来学习一下吧!c语言中的数据和代码是需要存放才可以使用的,C语言用变量来存储数据,用函数来定义一段可以重复使用的代码,它们最终都要放到内存中才能供 CPU 使用。
数据和代码都以二进制的形式存储在内存中,计算机无法从格式上区分某块内存到底存储的是数据还是代码。当程序被加载到内存后,操作系统会给不同的内存块指定不同的权限,拥有读取和执行权限的内存块就是代码,而拥有读取和写入权限(也可能只有读取权限)的内存块就是数据。
CPU 访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址。编译和链接过程的一项重要任务就是找到这些名称所对应的地址。
然而指针也是一种变量,他里面装的就是所指数据或者代码的地址。所以它可以指变量,也可以指函数。
C语言中一切都是地址
下面的代码演示了如何输出一个地址:
#include <stdio.h>int main(){ int a = 100; char str[20] = "c.biancheng.net"; printf("%#X, %#X\n", &a, str); return 0;}
运行结果:
0X28FF3C, 0X28FF10
%#X表示以十六进制形式输出,并附带前缀0X。a 是一个变量,用来存放整数,需要在前面加&来获得它的地址;str 本身就表示字符串的首地址,不需要加&。
到这里文章就结束了,如果有想要学习C语言呢,或者再学习C语言的可以,私聊我发送“C语言” 虽然c语言简单,但是一些更加重要的知识是教科书上没有的。需要学习者自己尝试。所以有对于学习者来说,有个好的交流环境,学习资料是特别重要的。我会给大家提供一些帮助、建议,但也希望大家多去实践自己获取学习到的知识。
如果觉得我文章还可以的可以关注,转发,收藏,评论,谢谢大家。