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语言语法目录一的更多相关文章

  1. C语言语法目录二

    1.char类型 char c;定义了一个char变量 'a' ; char常量 char的本质就是一个整数,一个只有一个字节大小的整数 char c; 定义一个有符号的char unsigned c ...

  2. Go语言语法汇总(转)

    Go语言语法汇总 分类: 技术2013-09-16 14:21 3007人阅读 评论(0) 收藏 举报 go语言golang并发语法   目录(?)[+]   最近看了看GoLang,把Go语言的语法 ...

  3. C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

    原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...

  4. R语言语法基础二

    R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...

  5. R语言语法基础一

    R语言语法基础一 Hello world #这里是注释 myString = "hello world" print(myString) [1] "hello world ...

  6. L脚本语言语法手冊 0.10版

    L脚本语言语法手冊 0.10版       简  介 L脚本语言是一个轻量级的,旨在接近自然语言的编程语言,眼下支持在中文.英文基础上的编程.并可扩展为随意语种.L脚本语言的语法结构简单.程序结构相对 ...

  7. 嵌入式C语言自我修养 01:Linux 内核中的GNU C语言语法扩展

    1.1 Linux 内核驱动中的奇怪语法 大家在看一些 GNU 开源软件,或者阅读 Linux 内核.驱动源码时会发现,在 Linux 内核源码中,有大量的 C 程序看起来“怪怪的”.说它是C语言吧, ...

  8. Go语言语法说明

    Go语言语法说明 go语言中的go func(){}() 表示以并发的方式调用匿名函数func 深入讲解Go语言中函数new与make的使用和区别 前言 本文主要给大家介绍了Go语言中函数new与ma ...

  9. PL真有意思(二):程序设计语言语法

    前言 虽然标题是程序语言的语法,但是讲的是对词法和语法的解析,其实关于这个前面那个写编译器系列的描述会更清楚,有关语言语法的部分应该是穿插在整个设计当中的,也看语言设计者的心情了 和英语汉语这些自然语 ...

随机推荐

  1. 程序员有什么办法能快速梳理java知识点?有这八张图就够了

    一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符串不变性 下面这张图展示了这段代码做 ...

  2. 剑指Offer面试题:8.二进制中1的个数

    一 题目:二进制中1的个数 题目:请实现一个整数,输出该数二进制表示中1的个数.例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. 二 可能引起死循环的解法 // 计算整数的二 ...

  3. Microsoft Office 2013 (64位) 免费完整版(安装 + 激活)

    Microsoft Office 2013(Office 15)是微软的新一代Office办公软件,全面采用Metro界面.Microsoft Office 2013官方下载(Office2013专业 ...

  4. IOS Quartz 2D 学习(1)

    IOS提供两种创建图形的途径: 1.OpenGL. 2.Quartz.Core Animation.UIKit图形支持. UIKit的图形系统 1.视图绘画周期: DrawRect方法,在任何时候,当 ...

  5. lvds配置

    基于Altera FPGA的LVDS配置应用一例 在特权同学发表博文<Cyclone III的LVDS接口注意事项>后,不少网友发邮件询问LVDS具体应用的一些问题.这些网友,归根到底,估 ...

  6. matlab中hdl coder 的使用

    今天摸索了一下hdl coder的使用方法,各个步骤主要是照猫画虎,有些地方还是不理解,先总结一下: 1.要想调用quartus或者Xilinx综合布局布线需要先设置,设置的方法有两种,命令窗口输入 ...

  7. gitlab pipelines 使用

    1. 安装runner   # For Debian/Ubuntu curl -L https://packages.gitlab.com/install/repositories/runner/gi ...

  8. java md5 函数

    private static final String md5(final String s) { final String MD5 = "MD5"; try { // Creat ...

  9. CentOS7上部署https

    目前很多浏览器都加强了html都安全性,要求配置https. 下面都例子是在CentOS7上的Apache配置https都过程. 一.生成证书 用OpenSSL生成key和证书: mkdir /etc ...

  10. 蓝桥杯 算法训练 ALGO-93 反置数

    算法训练 反置数   时间限制:1.0s   内存限制:512.0MB 问题描述 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那么在它 ...