数据(内存)——基本篇

首先我就不去说什么常量变量了,一般认为常量变量是基本数据,我们统一说成数据或者对象。

C语言中数据的五大属性:

①名;

②值;

③地址(第一个字节的地址或者说首地址);

④类型(占几个字节的内存空间或者说长度,比如64位的Linux下,int占4字节        存储方式);

⑤存储:可变性、作用域、生存期(详见C语言进程的内存模型图)

 根据不同的内存区域栈、堆、全局、常量区对三个属性进行理解,这里要注意一点这三个属性之间并没有什么必然联系,它们是相互独立的。

作用域:

在C语言中,无非就是函数外和函数内。——函数内的数据可以在栈上定义也可以在堆上申请,只要这个数据是在函数内定义的,那么它的作用域就是函数体,在函数func外定义的数据对func函数来说作用域是全局的。

生存期:

大看栈堆小看static。——栈上定义的非static数据生存期从被定义到函数运行结束,static数据的生存期从被定义到进程终止;堆上定义的由于是指针,一般不用static修饰,其生存期从被定义到被释放,进程终止时os会回收没有释放的堆数据,但是对于服务器开发而言,由于服务器进程不会终止所以必须手动free。

可变性:

使用const修饰的数据作为常量不可再被更改,如果更改编译时就会报错,因此这样的数据必须被初始化,使用char*修饰的字符串也是常量,因而在C语言中,字符数组和字符串是不一样的,这一点尤为重要。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值