首页 > 其他分享 >C笔记---01基础篇

C笔记---01基础篇

时间:2023-08-28 19:00:20浏览次数:48  
标签:初始化 01 const 函数 静态 程序 笔记 --- 变量

一、C语言内存分区

1、程序代码区:存放 CPU 执行的机器指令。
2、数据区
  2.1常量区:字符串、数字等常量存放在常量区,const修饰的全局变量存放在常量区;常量区的内存是只读的,程序结束后由系统释放。

  2.2全局区(静态区)又分为两个部分
  (a)全局初始化数据区 / 静态数据区(data段):程序中明确被初始化的全局变量、已经初始化的静态变量。
  (b)未初始化数据区(bss段):存入的是全局未初始化变量和未初始化静态变量,未初始化数据区的数据在程序开始执行之前被内核初始化为 0 或者空 ( NULL )。.bss段不占用可执行文件空间,其内容由操作系统初始化。

3、栈区(stack):向下增长,由编译器自动分配释放 ,存放函数的参数值、局部变量的值等。
4、堆区(heap) :向上增长,一般由程序员调用malloc、free函数分配释放, 若程序员不释放,程序结束时可能由操作系统回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。

二、关键字

1.static关键字

  static修饰的变量:其存储类型为全局静态区,生命周期是整个程序,变量在程序的整个运行过程中不会被销毁,并且只初始化1次,但是作用域是和局部变量一样的,从定义开始,到最近的花括号结束。
static修饰函数:函数就被定义成为静态函数。静态函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。好处是:
(1)其他文件中可以定义相同名字的函数,不会发生冲突;
(2)静态函数不能被其他文件所用。

2.const关键字

  const 修饰符用来告诉编译器,被修饰的内容具有“只读”的特点。如果我们在程序中试图修改 const 变量的值,编译器将给出错误提示。这样可以保护被修饰的东西,防止意外修改,增强程序的健壮性。
const 变量的值在给定以后不能改变,所以 const 变量必须被初始化。

标签:初始化,01,const,函数,静态,程序,笔记,---,变量
From: https://www.cnblogs.com/xiaohuzaixue/p/17579786.html

相关文章

  • 初识Docker-Docker的安装
                ......
  • 王道408---CO---机组输入输出系统必会知识点
    一、SSD固态硬盘基于flash闪存二、通道概念通道是一个具有特殊功能的处理器,它有自己的指令和程序,专门负责数据输入输出的传输控制,通道受CPU的I/O指令启动、停止或改变其工作状态。功能通道的基本功能是按I/O指令要求启动I/O设备,执行通道指令,组织I/O设备或主存进行数据传输,向......
  • 标准C++ -- day06
    一、什么是继承当遇到问题时,先查看现有的类是否能解决一部分问题,如果有则继承该类,并在此基础上扩展以此解决问题,从而缩短解决问题的时间(代码复用)当遇到一个大而复杂的问题时,可以把大问题拆分成若干个不同的小问题,然后为每个小问题设计一个类来解决,最后通过继承的方式把这......
  • 记录--怎么实现一个3d翻书效果
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助本篇主要讨论以下两种翻书动画的实现:第一种是整页翻转的效果:这种整页翻转的效果主要是做rotateY的动画,并结合一些CSS的3d属性实现。第二种折线翻转的效果,如下图所示:主要是通过计算页面翻折过来的位置。这两种......
  • 梅科尔工作室-IoT-南向开发第四次培训笔记
    当使用MQTT协议进行开发时,以下是一些值得注意的方面:选择MQTT代理:MQTT代理是负责消息传递的中间件,你可以选择使用开源的MQTT代理,如EclipseMosquitto、EMQX等,或者使用云服务提供商的MQTT服务。定义主题(Topic)结构:在设计时,你需要合理地定义主题结构,以便发布者和订阅者可以有效地进行......
  • Java进阶篇-2
    不可变集合创建不可变集合的应用场景如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践当集合对象被不可信的库调用时,不可变形式是安全的List<String>list=List.of("张三","李四","王五","赵六");Map<String,String>map=Map.of("张三","李四",&quo......
  • 初始Docker-Docker和虚拟机的差别
       ......
  • 21. 补充阅读资料--会计基本概念与会计要素(转载)
    会计基本概念与会计要素(转载自https://zhuanlan.zhihu.com/p/39861991点击查看原文)会计是现代企业的一项重要基础性工作,它是通过完整记录企业经营过程中的各种事项,编制企业财务报表,反映企业的财务状况、经营成果及现金流量。财务报表是企业与投资者进行信息沟通的一种特殊语......
  • PostgreSQL-可以通过localhost连接,无法通过IP地址连接。
    (1)如果PostgreSQL配置文件中没有允许访问该服务器的IP地址,则需要先添加允许访问的IP地址,并在防火墙中开放相应的端口。(2)在PostgreSQL配置文件postgresql.conf中,找到以下行:listen_addresses='localhost'将localhost改为*,表示允许任何IP地址访问该服务器。如果只允许特定的IP地址......
  • Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)
    A.给三个数\(x\)\(y\)\(n\)。需要构造一个长度为\(n\)的数组满足以下条件\(a_1=x\),\(a_n=y\)。\(a\)严格递增。定义\(b_i=a_{i+1}-a_{i}\),\(b\)严格递减。显然前两个条件非常宽松,定义好起始点,让\(a\)严格单调递增即可。显然\(b\)是\(a\)的差......