C笔记---01基础篇
一、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)静态函数不能被其他文件所用。
C语言中,static主要定义全局静态变量、局部静态变量、静态函数。
全局静态变量:
a.在全局区分配内存;
b.如果没有初始化,其默认值为0;
c.该变量在本文件内从定义开始到文件结束可见。
局部静态变量:
a.该变量在全局数据区分配内存;
b.它始终驻留在全局数据区,直到程序运行结束;
c. 其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。
定义静态函数:
a.静态函数只能在本源文件中使用;
b.在文件作用域中声明的inline函数默认为static类型。
2.const关键字
const 修饰符用来告诉编译器,被修饰的内容具有“只读”的特点。如果我们在程序中试图修改 const 变量的值,编译器将给出错误提示。这样可以保护被修饰的东西,防止意外修改,增强程序的健壮性。
const 变量的值在给定以后不能改变,所以 const 变量必须被初始化。
三、格式符

- %d 十进制有符号型输出 (Decimal)
① %6d 整数输出,正号右对齐,宽度是6位,不足左边补空格
② %06d 整数输出,宽度是6位,不足左边补数字0
③ %-6d 整数输出,负号左对齐,宽度是6位,不足右边补空格。
- %i:
在 printf 格式串中使用时,与%d没有区别。
在scanf格式中,%d 只与十进制形式的整数相匹配。而%i 则可以匹配八进制、十进制、十六进制。
四、转义字符
1、\t \r \n都是转义字符,空格就是单纯的空格,输入时可以输入空格;
2、\t 的意思是 :水平制表符,将当前位置移到下一个tab位置;
3、\r 的意思是: 回车,将当前位置移到本行的开头;
4、\n 的意思是:回车换行,将当前位置移到下一行的开头;
5、\f的意思是:换页,将当前位置移到下一页的开头。
\t :水平制表符。相当于TAB键,通常宽度相当于8个空格的位置。在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。
C笔记---01基础篇的更多相关文章
- (转)深度学习word2vec笔记之基础篇
深度学习word2vec笔记之基础篇 声明: 1)该博文是多位博主以及多位文档资料的主人所无私奉献的论文资料整理的.具体引用的资料请看参考文献.具体的版本声明也参考原文献 2)本文仅供学术交流,非商用 ...
- 深度学习word2vec笔记之基础篇
作者为falao_beiliu. 作者:杨超链接:http://www.zhihu.com/question/21661274/answer/19331979来源:知乎著作权归作者所有.商业转载请联系 ...
- Django学习笔记(基础篇)
Django学习笔记(基础篇):http://www.cnblogs.com/wupeiqi/articles/5237704.html
- Python学习笔记之基础篇(-)python介绍与安装
Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...
- Sass-学习笔记【基础篇】
最下边附结构图 在线编辑器网址如下:http://sassmeister.com/ 注意编写的时候,符号千万别用了中文的:.:.....之类的,会报错,Sass也转换不成css. less和sass ...
- mysql学习笔记之基础篇
数据库学习之基础篇 ① 开放数据库互连(Open Database Connectivity,ODBC ② 结构化查询语言(Structured Query Language) ③ 进入mysql:M ...
- PHP学习笔记01——基础语法
<!DOCTYPE html> <html> <?php // 1.使用$加变量名来表示变量,php是弱类型语言,不要求在使用变量前声明,第一次赋值时变量才被创建 $a ...
- Git学习笔记:基础篇
git可以说是所有开发者出开发语言之外的最基本的基本功了,熟悉git可以方便的进行代码版本控制,以及与其他开发者进行合作开发.本文内容是我以往学习git时做的笔记,主要是关于git最基本的操作,但 只 ...
- CSS学习笔记(基础篇)
CSS概念 CSS 指层叠样式表 (Cascading Style Sheets)(级联样式表) Css是用来美化html标签的,相当于页面化妆. 样式表书写位置: <head> < ...
- .net core 3.0 Signalr - 01 基础篇
因为将signalr作为单独的站点,此处需要建立两个项目,一个专门用于signalr作为推送项目,一个客户端(实际的业务项目) ## 基础知识速览 ### Clients对象属性 | 属性 | 描述 ...
随机推荐
- 痞子衡嵌入式:利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据对齐
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据对齐. MCU 开发里常常需要 CRC 校验来检查数据完整性,CR ...
- Python网络爬虫第一弹
03.Python网络爬虫第一弹<Python网络爬虫相关基础概念> 爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那 ...
- Python:pygame游戏编程之旅二(自由移动的小球)
本节实现一个在窗口中自由运动的小球程序,做了详细注释,不多做解释了. 代码: # -*- coding:utf-8 -*- import sys import pygame from pygame.l ...
- JS逆向
插件工具v_jstools:https://github.com/cilame/v_jstools 对指定的一些操作进行监听 1) 一定要开启 是否挂钩总开关 2)是否启用一下几个加解密函数挂钩输出功 ...
- wps文字表格邮件附件部分图片无法预览的问题(1)
使用邮箱客户端发送带word附件的邮件时,客户说部分图片无法查看.我方人员测试下,得到如下几点: 1.出问题的.docx文件下载后可以正常打开查看,但通过给自己邮箱转发邮件(包含附件),foxmail ...
- 理解Java FutureTask
FutureTask实现的功能 它的功能就像他继承的接口一样:Runnable与Future.他实现了一套机制将两者连接起来. Runnable主要方法是run(),用于执行一些程序. Future主 ...
- winform窗体无边框拖动
1:引用命名空间 using System.Runtime.InteropServices; 2:想要拖动窗体的控件绑定MouseDown事件 点击查看代码 //窗体移动 [DllImport(&qu ...
- uni.showModel内容换行
前情 最近在做小程序项目,选用有是当前比较火的uniapp技术栈,在产品项目中用到不少的需要引导用户确认后才继续操作的弹框. 为什么想到我去换行? 其实showModel弹框的content是支持自动 ...
- Fiddler抓包iOS手机配置全流程
前情 平时做移动移动端开必的时候经常需要抓包手机,用于接口请求跟踪,但iOS的抓包经常性的配不成功,经过踩过不少坑后终于知道了整个配置流程,此文记录Fiddler抓包iOS手机的配置流程. Step ...
- ChatGPT自动生成功能测试用例的步骤
在上一节,我们一起探讨了ChatGPT在功能测试用例生成方面的优势.接下来,我们将探讨ChatGPT自动生成功能测试用例的步骤. 1) 问题定义:让ChatGPT自动生成功能测试用例的第一步是清 ...