C语言中变量和常量的区别

本文探讨了C语言中变量和常量的区别。值常量包括数字、字符和浮点数,而符号常量通过#define定义并在编译时替换。变量是符号化的内存地址,编译时变量名被替换为内存地址,运行时可以读写。
摘要由CSDN通过智能技术生成

初学编程的人可能对变量和常量的概念理解不深,特写篇短文分析下C语言中变量常量的区别,其他语言中也类似。

首先说说常量。C语言中常量分为值常量和符号常量:

值常量如:2,“a”,3.14

符号常量如:#define PI 3.14     //定义了符号常量PI

当源代码文件被编译生成目标代码文件时,符号常量将被替换为值,如PI替换为3.14。

因此,当程序运行时,符号常量已经成为了值常量了。值常量与程序一起编译成为二进制机器码存入到内存的代码段中,冯·诺依曼体制计算机中程序运行时不可修改代码段,因此显然程序运行时常量是不可修改的

然后我们说说变量。C语言中的变量就是符号化的地址

例如语句int data;定义了整型变量data。当源代码文件被编译生成目标代码文件时,编译程序将变量名替换为内存相对地址。运行程序时,执行该语句会在内存分配连续的4个字节(32bit)空间用于存放整数,这4个字节的起始地址(假设为0x01234,小端模式,字对齐)由符号data表示。语句data=0x12345678;对data进行赋值操作会将0x1234567

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值