• 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 ",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 ",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)

  • 相关阅读:
    强类型、弱类型、静态、动态语言定义(转载)
    What is a non-trivial constructor in C++?(转载)
    面试准备之面试题(C++) (一)
    python实现tail(考虑到几种特殊情况)
    rsyslog应用案例
    FUCK, 排查python写入mysql数据库过慢的过程(心都碎了)
    svn相关操作
    springCloud学习中遇到的问题
    idea启动项目没错,可是debug却一直启动不起来
    前端控制台返回406错误解决方法
  • 原文地址:https://www.cnblogs.com/schut/p/8542877.html
Copyright © 2020-2023  润新知