C语言基础

第1次学习总结

Linux下的基本命令,基本数据类型,和数据以补码方式在计算机中存储。

day1总结

<a name = "1">手动编译过程</a>

手动编译过程
  • 预处理:预处理相当于根据预处理命令组装成新的 C 程序,不过常以 i 为扩展 名。
  • 编 译:将得到的 i 文件翻译成汇编代码 .s 文件。
  • 汇 编:将汇编文件翻译成机器指令,并打包成可重定位目标程序的 O 文件。
    该文件是二进制文件,字节编码是机器指令。
  • 链 接:将引用的其他 O 文件并入到我们程序所在的 o 文件中,处理得到最终
    的可执行文件。

<a name = "1">Linux的目录和分区</a>

和之前的Windows电脑不同的是Linux打开之后没有发现类似C:/这样的盘符.这是因为Linux的分区是挂载到文件目录下的。文件目录描述的大致如下:

目录 描述
/ 根目录
/bin 做为基础系统所需要的最基础的命令就是放在这里。比如 ls、cp、mkdir 等命令;
/boot Linux 的内核及引导系统程序所需要的文件
/dev 一些必要的设备,比如声卡、磁盘等。
/ect 系统的配置文件存放地.一些服务器的配置文件也在这里;比如用户帐号及密码配置 文件;
/lib 库文件存放地。
/media 可拆卸的媒介挂载点,如 CD-ROMs、移动硬盘、U 盘,系统默认会挂载到这里来。
/mnt 临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录
/opt 可选的应用程序包
/proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如 cpu、硬盘分 区、内存信息等)存放在这里。
/root Root用户的工作目录
/sbin 和 bin 类似,是一些可执行文件,不过不是所有用户都需要的,一般是系统管理所 需要使用得到的。
/tmp 系统的临时文件,一般系统重启不会被保存。
/usr 包含了系统用户工具和程序。
/srv 该目录存放一些服务启动之后需要提取的数据

如果一个分区没有挂载在目录中就不会被系统接收和识别。Linux下磁盘的分区和目录的关系如下:

  • 任何一个分区都必须挂载到某个目录上。
  • 目录是逻辑上的区分,分区是物理上的区分
  • 磁盘 Linux 分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。
  • 根目录是所有 Linux 的文件和目录所在的地方,需要挂载上一个磁盘分区。

挂载外设

挂载外设的步骤

  • 插入外设,输入命令fdisk -l来找到外部设备如:/dev/sdb1
  • 在挂载目录/mnt下 创建挂载的目标目录如:/mnt/usb
  • 挂载命令:mount /dev/sdb1 /mnt/usb/
  • 卸载:umount /mnt/usb/值得注意的是命名中卸载目标目录 而不是设备。

<a name = "2">Linux终端常用命令</a>

ls pwd cd touch mkdir rm cp mv find cat less head tail useradd gou passwd you su ifconfig ping setup

<a name = "2">VIM教学</a>

vimtutor 中有教学每天坚持两遍就好。

使用中文版vimtutor -g zh

关于vim的配置高亮缩进等

在用户当前的家目录中,输入 vim ~/.vimrc 该文件是一个隐藏文件,如果没有则
创建它,该文件中保存一些,vim 的常用配置。

set nu            //代码显示行号
syntax on         //关键词高亮显示
set cindent       //c语法自动缩进
set autoindent    //新行自动缩进 
set shiftwidth=4  //缩进宽度4
set tabstop=4     //tab键宽度4 
set softtabstop=4 //制表符宽度4

day2总结

<a name = "2">流程图设计推荐</a>

流程图设计的网站:www.processon.com

<a name = "2">标识符的命名规则</a>

  • 只能由字母、数字、下划线、组成。
  • 不能以数字开头。
  • 不能使用关键字。
  • (记忆:如果数开头就会输(失败))
  • 注:main不是关键字。
  • 命名区分大小写。gou 与 GOU是不同。

其他法则:1.驼峰法则 sumOfTwoNumber 2.下滑线 sum_of_two_number

<a name = "2">补码</a>

example1:1字节下2的原码 反码 补码是多少?

正负不变的原则

码型 表示值
原码 0000 0010
反码 0111 1101
补码 0111 1110

example2:以下代码是打印32 ~ 127的ASCII码。如果去掉unsiged就会死循环。

int main(void){
    unsigned char ch;
    for (ch = 32; ch < 128; ch++) {
        printf("%3d = %c\n", ch, ch);
    }
}

原因:当改为char时候。变为有符号数, 补码会用来表示符号。ch = 127 127(补码形式0111 1111) < 128成立 打印
ch++ ch = 128(补码形式1000 0000 原码:-1000 0000 = - 128) 这样就死循环了。比较时任是比较原码值的大小。变化的时候正负不变 符号位设置为0;补码是模的概念, 而模是一个循环。满了就会回到起点。

补码 表示值
1111 1111 -1
---- ----
1000 0001 -127
1000 0000 -128
0111 1111 127
0111 1110 126
---- ----
0000 0010 2
0000 0001 1
0000 0000 0

<a name = "3">基本数据类型</a>

难点分析:浮点数的表示方法

存储示意图

比如32位要存储0.5这个数字。

0.5 = 1 * 2 -1

  • 符号位 0
  • 阶码 = 127 + (-1) = 126 即:0111 1110
  • 尾数 = 只存储1.0后的部分,因为个位数一定是1.所以存储0。 即:0000000 00000000 00000000
  • 故总的表示为:0 0111 1110 0000000 00000000 00000000

同理125.5的表示
125二进制表示形式为1111101,小数部分表示为二进制为 1,则125.5二进制表示为1111101.1,由于规定尾数的整数部分恒为1,则表示为1.1111011*26,阶码为6,加上127为133,则表示为10000101,而对于尾数将整数部分1去掉,为1111011,在其后面补0使其位数达到23位,则为11110110000000000000000
则其二进制表示形式为 0 10000101 11110110000000000000000,则在内存中存放方式为:

01000010   高地址
11111011
00000000
00000000   低地址

由上分析可知float型数据最大表示范围为

  1. 1111111 11111111 11111111 x 2 127= 3.4 x 1038

难点分析:浮点数的精度是一个范围!!???

比如要表示0.1 到0.9 九个小数。精度到0.1至少需要9个开关,也就是9bit,即4个字节至少。所以4个字节的精度是3~4位。有可能精确到4位表示一些数,但是不能全部全表示所以不能全达到4位。

所以在23个尾数字节的存储情况下, 可以表示 223 种可能。
如果要达到精确到0.00 0001 大概需要99 9999种可能。223 = 838 8608 > 99 9999 所以足够精确到精确到 6 位。但是如果精确到 7 位就必须 999 9999种可能。然而开关 838 8608不够。所以精度是6~7位。

<a name = "转义字符">转义字符</a>

ASCII 0~127的范围

常见转义字符的

转义字符 意义
\n 换行
\r 回车移到本行开头
\t 水平制表,调到下一个TAB缩进处
\|\
' '
\" "
%% %

比如:

printf("I like \"football\"\n");
printf("%d%%\n", 95);

输出:
I like "football"

95%

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容