c语言语法目录一
1、#include<stdio.h>
include 是要告诉编译器,包含一个头文件
在c语言中,任何库函数调用都需要提前包含头文件
<头文件> 代表让c语言编译器去系统目录下需找相关头文件。(系统库函数)
"头文件" 代表让c语言编译器去用户当前目录下寻找相关头文件。(自定义头文件)
2、main函数
main函数是c语言的主函数,一个c语言程序有且只能有一个主函数。
3、注释
// 单行注释
/* */ 单行或多行注释
4、{} 括号
函数代码都是在{}里包着的
5、声明
如 :int a; 声明一个变量一个名字叫a的整型变量
6、c语言自定义变量的要求
字母、数字和下划线的任意组合
区分大小写
不能使用c语言关键字作为变量名称
7、每一行结尾必须是英文下的分号(;)
8、printf函数是向标准输出设备输出字符串
9、return语句
函数遇到return便终止了,return是关键字
向调用函数返回值
return 0; 主函数return 0表示成功,-1表示失败
10、System系统调用(调用 #include<stdlib.h>头文件)
比如执行:system('calc'); 编译执行后会自动调用计算器程序。
11、c语言程序执行过程
预编译(.c文件)--> 编译 --> 链接(可执行程序)
预编译-E(比如:a.c转成a.e):将程序头文件的内容打开,去除无用的注释之类的东西
汇编:-S ,将c语言转化为c语言
编译:将代码编译为二进制的机器指令
12、常量的定义
#define MAX=100 //定义一个常量MAX,值为100,定义时必须赋初值,且不可修改
const int a = 100 //此处a也是一个常量
#define STRING "hello" //定义了一个字符串常量
const char *str = "hello c" //也定义了一个字符串常量
说明:对于#define类型的常量,习惯是常量名大写,但对于普通const常量及变量一般小写结合大写。
13、二进制数、位、字节与字
一个位只能表示0或1,两种状态,简称bit,
一个字节为8个二进制,称为8位,简称BYTE,
一个字为2个字节,简称WORD
2个字为双字,简称DWORD
14、二进制、八进制、十六进制
十进制: 0 1 2 3 4 5 6 7 8 9 10 满十进一
二进制: 0 1 10 满二进一
八进制(o): 0 1 2 3 4 5 6 7 10 11 12 满八进一
十六进制(0x/x): 0 1 2 3 4 5 6 7 8 9 a b c d e f 满十六进一
十进制--->八进制 /二进制/十六进制
十进制数作为被除数,八进制(二进制、十六进制)作为除数,每一次取得余数倒序排列即为八进制数(二进制/十六进制)
%x 代表输出16进制数,%X 用大写字母方式输出16进制数。
%o 代表输出八进制数
15、sizeof 关键字
功能是求指定数据类型在内存中的大小,单位:字节。
16、short,long,longlong,unsigned int
short 短整型 2字节 16bit
long 长整型 32位系统下是4字节,64位系统是4字节,unix是8字节
long long 是64位,即8字节,32位系统效率低
int 一致是 4字节(不分平台)
unsigned(无符号) 0000 0000 ->1111 1111 0->255
有符号时 0000 0000 -> 1111 1111 -127->127
18、整数溢出
计算一个整数的时候超过整数能够容纳的最大单位数后会溢出,溢出的结果就是高位舍弃。
例如:
unsigned short a = 0xffff;
a = a + 100;
printf("%d\n",a); //a=99
分析:a = 1111 1111 1111 1111
a+100 = a+1+99 = 1 0000 0000 0000 0000 + 99
short为两个字节,16bits,超过部分会溢出,不计入,所以:
a + 100 = 0 + 99 = 99
当一个小的整数赋值给大的整数,符号位不会丢失,会继承。
例如:
int i = 1234;
short a = -2;
i = a;
printf("%x\n",i); # FFFFFFFE
19、大端对齐和小端对齐
对于arm、intel这些x86构架的复杂指令CPU,整数在内存中是倒着存放的,低地址放低位,高地址放高位,被称为小端对齐。
对于unix服务器的CPU,更多采用大端对齐的方式。
如下图所示:
20、原码、反码、补码与无符号数
1、原码
最高位数为符号位(0代表正,1代表负)
0000 0011 --> 3 1000 0011 --> -3
2、反码
一个数如果值为正,那么反码和原码相同 如:3的反码 0000 0011
一个数如果值为负,那么符号位为1,其他各位与原码相反(0变1,1变0)
如 -3的反码为:1111 1100
3、补码(计算机中负数以补码存放)
正数:原码、反码、补码都相同
负数:最高位为1,其余各位原码取反,最后加1.
负数时的转换:原码-->反码(除最高位1不变,其余全部取反)
原码<-->补码(最高位1不变,其余取反,再加1)
c语言语法目录一的更多相关文章
- C语言语法目录二
1.char类型 char c;定义了一个char变量 'a' ; char常量 char的本质就是一个整数,一个只有一个字节大小的整数 char c; 定义一个有符号的char unsigned c ...
- Go语言语法汇总(转)
Go语言语法汇总 分类: 技术2013-09-16 14:21 3007人阅读 评论(0) 收藏 举报 go语言golang并发语法 目录(?)[+] 最近看了看GoLang,把Go语言的语法 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- R语言语法基础二
R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...
- R语言语法基础一
R语言语法基础一 Hello world #这里是注释 myString = "hello world" print(myString) [1] "hello world ...
- L脚本语言语法手冊 0.10版
L脚本语言语法手冊 0.10版 简 介 L脚本语言是一个轻量级的,旨在接近自然语言的编程语言,眼下支持在中文.英文基础上的编程.并可扩展为随意语种.L脚本语言的语法结构简单.程序结构相对 ...
- 嵌入式C语言自我修养 01:Linux 内核中的GNU C语言语法扩展
1.1 Linux 内核驱动中的奇怪语法 大家在看一些 GNU 开源软件,或者阅读 Linux 内核.驱动源码时会发现,在 Linux 内核源码中,有大量的 C 程序看起来“怪怪的”.说它是C语言吧, ...
- Go语言语法说明
Go语言语法说明 go语言中的go func(){}() 表示以并发的方式调用匿名函数func 深入讲解Go语言中函数new与make的使用和区别 前言 本文主要给大家介绍了Go语言中函数new与ma ...
- PL真有意思(二):程序设计语言语法
前言 虽然标题是程序语言的语法,但是讲的是对词法和语法的解析,其实关于这个前面那个写编译器系列的描述会更清楚,有关语言语法的部分应该是穿插在整个设计当中的,也看语言设计者的心情了 和英语汉语这些自然语 ...
随机推荐
- 任务调度 Spring Task 4(一)
深入浅出spring task定时任务 在工作中有用到spring task作为定时任务的处理,spring通过接口TaskExecutor和TaskScheduler这两个接口的方式为异步定时任务提 ...
- Http权威指南(概述篇总结)
之前的<锋利的jQuery>后面陆续翻完了,实在觉得没什么值得记录的,也就没继续写了,然后看见书架上有 本去年买的<Http权威指南>,其实做web编程的,对于Http协议还是 ...
- CentOS 7下sqlite3的问题修复
Centos7下的nltk启动问题 CentOS 7, Python 3.6,ipython 6.0.0 问题描述 ipython 启动ipython命令 import nltk 爆出以下的错误信息: ...
- Comparing Xamarin and Delphi XE5 to Xcode for Cross Platform Mobile App Development
Comparing Xamarin and Delphi XE5 to Xcode for Cross Platform Mobile App Development If you are consi ...
- HTTP 方法:GET与 POST
什么是 HTTP? 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信. HTTP 的工作方式是客户机与服务器之间的请求-应答协议. web 浏览器可能是客户端,而计算机上的网络应用程 ...
- junit学习之junit的基本介绍
Junit目前在一些大的公司或者相对规范的软件中使用的比较多,相当多的小公司并没有把单元测试看的太重要.在大点的公司开发人员每天上班后,第一件事情就是从svn上把自己负责的代码checkout下来,然 ...
- HTML标签01
html标签:table 表格 (里面加的属性指整个表格的)tr 行td 单元格 (可以换成th,只有在单元格里面才能输入文字)th 表头 默认让文字居中 文字还会显示加粗状态 font 文字标签 属 ...
- LeetCode Kill Process
原题链接在这里:https://leetcode.com/problems/kill-process/description/ 题目: Given n processes, each process ...
- CH1801 括号画家(栈模拟)
描述 Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号.这一天,刚刚起床的Candela画了一排括号序列,其中包含小括号( ).中括号[ ]和大括号{ },总长度为N.这排随意绘制的括 ...
- phpwind主要表结构的研究随笔[1]
最近计划做一个新闻网站,前端打算用成熟的CMS搭建,后台是mongodb+mysql做数据过滤容器和最终数据存储,选型CMS如下: dedecms:国内某知名cms,以前用过,功能强大,网上资料资料很 ...