C言语语法总结(随时更新)
一、gcc
1. gcc xxx.c -o xxx #把原代码编译成可执行文件xxx
2. gcc -c xxx.c #编译: 把原代码编译xxx.o后辍的目标文件
3. gcc xxx.o -o xxx #链接: 把xxx.o后辍的目标文件链接成可执行文件xxx ###2.3 步等于1,但是会多出个xxx.o的目标文件,可用于检查错误
Visual Studio
1. F5或ctrl+F5或本地Windows调试器 #把原代码编译成可执行文件xxx
2. 生成->编译 #生成xxx.obj目标文件
3. 生成->仅用于项目->仅链接 cDemo #生成可执行文件xxx.exe ###2.3 步等于1
二、语法
1. puts("hello world"); #输出字符串
2. printf("a=%d, b=%d, c=%d", a, b, c); #10进制输出
# %hd 十进制输出 short 类型
# %d 十进制输出 int 类型
# %ld 十进制输出 long 类型
# %#ho 八进制输出 short 类型
# %#o 八进制输出 int 类型
# %#lo 八进制输出 long 类型
# %#hx/%#hX 十六进制输出 short 类型
# %#x/%#X 十六进制输出 int 类型
# %#lx/%#lX 十六进制输出 long 类型 十六进制的表示用到了字母, 因此x/X字母的表现形式不同,0b/0B 二进制 0 八进制 0x/0X 十六进制
# %c 输出一个字符
# %f 输出一个小数float #float与double类型的区别是, float点四字节(32位), double占8字节(64位)
# %lf 输出一个小数double
# %e 以指数输出一个float类型3.020000e-1
# %E 以指数输出一个float类型3.020000E-1
# %le 以指数输出一个double类型1.126400e+05
# %lE 以指数输出一个double类型1.126400E+05
# %g 智能输出小数float, 若是指数形式e小写
# %lg 智能输出小数double, 若是指数形式e小写
# %G 智能输出小数float, 若是指数形式E大写
# %lG 智能输出小数double, 若是指数形式E大写
# %s 输出一个字符串
3. int: 8Bit=1Byte(字节),一般占4字节,32Bit,也叫32位,如果不考虑正负数int类型保存的最大数为2的32次方减1, 约43亿
short int(short) 只占2字节(16位),如果不考虑正负数short保存的类型最大数2的16次方减1, 等于65535
long int(long) 占8字节(64位),如果不考虑正负数long保存的类型最大数2的64次方减1,这个值很大,过亿万亿了,我也不知道是多大
char 占一字节(8位) 如果不考虑正负数char保存的最大值为2的8次方减1, 等于255, 考虑正负数-128到127
4. 数据类型的长度(不同数据类型占的字节数称为数据类型长度)
sizeof 方法可以检测出长度 short 2字节, int 4字节, long 4/8字节(系统不一样)
内存中存储的数字是以补码形式存储的
三、多线程
1. 创建线程: pthread_create
2. 阻止调用线程并接收返回值: pthread_join
3. 终止当前线程: pthread_exit
4. 线程间的终止信号: pthread_cancel (注意取消点的问题)
5. 锁
四、进制之间的转换
1. 整数任意进制转换为十进制: 按权相加
如: 八进制转成十进制 53627 = 5*84+ 3*83 + 6*82 + 2*81 + 7*80 = 22423
十六进制转成十进制 9FA8C = 9*164 + 15*163 + 10*162 + 8*161 + 12*160 = 653964
二进制转成十进制 11010 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 26
2. 小数任意进制转换为十进制:
如: 八进制转成十进制423.5176 = 4*82 + 2*81 + 3*80 + 5*8-1 + 1*8-2 + 7*8-3 + 6*8-4 = 275.65576171875
3. 整数十进制转换成任意进制: 除N取余, 逆序排列
如: 十进制转成八进制 36926 = 36926/8 = 4615 % 6 (商为4615余6)
4615/8 = 576 % 7
576/8 = 72 % 0
72/8 = 9 % 0
9/8 = 1 % 1
1/8 = 0 % 1
= 110076
十进制转二进制 42 = 42/2 = 21 % 0
21/2 = 10 % 1
10/2 = 5 % 0
5/2 = 2 % 1
2/2 = 1 % 0
1/2 = 0 % 1
= 101010
4. 小数十进制转任意进制: 乘N取整, 顺序排列
如: 十进制转八进制 0.930908203125 = 0.930908203125*8 = 7.447265625 int 7(整数部分)
= 0.447265625*8 = 3.578125 int 3
= 0.578125*8 = 4.625 int 4
= 0.625*8 = 5.0 int 5
= 0.7345(八进制)
十进制转二进制 0.6875 = 0.6875 * 2 = 1.375 int 1
= 0.375 * 2 = 0.75 int 0
= 0.75 * 2 = 1.5 int 1
= 0.5 * 2 = 1.0 int 1
= 0.1011(二进制)
0.1 = 0.1 * 2 = 0.2 int 0
= 0.2 * 2 = 0.4 int 0
= 0.4 * 2 = 0.8 int 0
= 0.8 * 2 = 1.6 int 1
= 0.6 * 2 = 1.2 int 1
= 0.2 * 2 = 0.4 int 0
= 0.4 * 2 = 0.8 int 0
= 0.8 * 2 = 1.6 int 1
= 0.00011001………………(无限循环的二进制)
C言语语法总结(随时更新)的更多相关文章
- 原创:Angular新手容易碰到的坑,随时更新,欢迎订阅
在Angular群里回答新手问题一段时间了,有一些Angular方面的坑留在这里备查,希望能对各位有所帮助.这个文章将来会随时更新,不会单独开新章,欢迎各位订阅. Q1. <div ng-inc ...
- Android 常用的快捷键(随时更新)
android studio 是google出的一款好用不贵的ide,好像是powerd by idea的那个公司,反正风格上差不多.下面是android studio常用的快捷键设置,记录一下自己用 ...
- [随时更新][Android]小问题记录
此文随时更新,旨在记录平时遇到的不值得单独写博客记录的细节问题,当然如果问题有拓展将会另外写博客. 原文地址请保留http://www.cnblogs.com/rossoneri/p/4040314. ...
- 【React 6/100】 React原理 | setState | JSX语法转换 | 组件更新机制
****关键字 | setState | JSX语法转换 | 组件更新机制 组件更新机制 setState() 的两个作用 修改state 更新组件 过程:父组件重新渲染时,也会重新渲染子组件,但只会 ...
- 深入理解Java虚拟机第三版,总结笔记【随时更新】
最近一直在看<深入理解Java虚拟机>第三版,无意中发现了第三版是最近才发行的,听说讲解的JDK版本升级,新增了近50%的内容. 这种神书,看懂了,看进去了,真的看的很快,并没有想象中的晦 ...
- 随时更新web html 项目页面,查看手机等其他移动设备的几种方法?
想一想自己一边写着代码,一边随时看着手机更新页面,对于前端开发者来说是不是爽歪歪: 实现以上效果只需要几个方法: 1) 安装虚拟机 Oracle VM VirtualBox (安装过程省略) 2) 安 ...
- Github使用指南(学习中随时更新)
注册好一个账号后先创建一个仓库 点击"Create repository"创建一个版本库 填好带*号的必填项,选择是要公开仓库还是私人使用,勾选自动添加README选项 READM ...
- hibernate优化笔记(随时更新)
一:优化配置 1.关联映射的配置:对照之前的博客,如:inverse属性的设置(减少对同一对象的多条update语句):在one端设置为true,只会执行一次update语句 2.级联cascade属 ...
- linux 常用操作指令(随时更新)
ls: 查看当前目录下文件列表 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p ...
随机推荐
- 1000-ms-maven相关问题
一.Maven有哪些优点和缺点 优点如下: 简化了项目依赖管理: 易于上手,对于新手可能一个"mvn clean package"命令就可能满足他的工作 便于与持续集成工具(jen ...
- 说起分布式自增ID只知道UUID?SnowFlake(雪花)算法了解一下(Python3.0实现)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_155 但凡说起分布式系统,我们肯定会对一些海量级的业务进行分拆,比如:用户表,订单表.因为数据量巨大一张表完全无法支撑,就会对其进 ...
- MySQL 常见索引类型介绍
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. MySQL 主要索引类型有如下几种: 1.主键索引 2.唯一索引 3.普通索引 4.空间索引 5.全文索引 假设有如下一张 ...
- Apache DolphinScheduler 1.2.1 发布说明
Apache DolphinScheduler 于2020年2月24日正式发布 1.2.1 版,发布内容如下: 新特性: [#1497] 通过 API 创建的工作流在前端展示时自动调整布局. [#74 ...
- 【JAVA UI】HarmonyOS 如何使用TinyPinyin类库
参考资料 前言:TinyPinYin是一个适用于Java和Android.HarmonyOS的快速,低内存的汉字转拼音库.码云地址TinyPinYin,其使用方法已在API讲解中有详细介绍,本文 ...
- mysql 8.0.28 查询语句执行顺序实测结果
TL;NRs 根据实测结果,MySQL8.0.28 中 SQL 语句的执行顺序为: (8) SELECT (5) DISTINCT <select_list> (1) FROM <l ...
- 年轻的樵夫哟,你掉的是这个免费 8 核 4G 公网Docker 服务器
Play With Docker 直接打开 https://labs.ply-with-docker.com/ 即可访问 Play With Docker 平台. 注册一个 DockerHub 账号便 ...
- UVA1306 The K-League(最大流)
题面 有 n n n 支队伍进行比赛,每支队伍需要打的比赛数目相同. 每场比赛恰好一支队伍胜,另一支败. 给出每支队伍目前胜的场数 w i w_i wi 和败的场数(没用),以及每两个队伍还剩下的比 ...
- Little Girl and Problem on Trees
题意 给定一棵无边权的树,最多只有一个点度数超过2,有两种操作 1)(0 u x d)将距离u节点d距离之内的节点的值加上x 2)(1 u)询问u节点的值 n<=100000,q<=100 ...
- Exchange 2019中的Unified Messaging(UM)
前天,刚刚安装了测试用的Exchange 2019.安装过程和之前的2016一样,非常顺利.但是在用ECP管理服务器的时候遇到了一个报错.The term 'Get-UMService' is not ...