博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言基础
阅读量:5238 次
发布时间:2019-06-14

本文共 3379 字,大约阅读时间需要 11 分钟。

C语言

#include 
int main(){ printf("Hello World!\n");return 0;}

数据

数据类型

  • 构造类型

    • 数组

      • 一维数组
      • 多维数组
    • 结构体

      • struct
      • 结构体嵌套
      • 匿名结构体
    • 共用体

      • union
  • 基本类型

    • 字符类型

      • 单字符类型

        • 声明:char c ='c';
      • 字符串类型

        • 声明:char str[] = "字符串";
        • 基本操作

          • strlen得到长度
          • strcpy字符串赋值
          • strcat字符串连接
          • sprintf格式化数据写入第一个参数
    • 数值类型

      • 整型

        • 有符

          • int
          • short
          • long
        • 无符

          • unsigned
      • 实型

        • float
        • double
  • 指针类型

    • 一级指针

      • 基本类型指针
      • 数组指针
      • 函数指针
    • 多级指针

      • 指向指针的指针
    • 指针使用

      • =地址赋值
      • &取地址
      • *取值
      • 可以做+、- 运算
  • 空类型(void)

内存分区

  • 变量

    • 自动变量

      • auto变量

        • 默认定义的变量为auto变量
        • 作用域和生存期都在代码块内{ }
        • 屏蔽外层变量{ }
        • 不能重复定义
        • 初始值随机
      • register变量

        • 只能为局部变量
        • 数目有限不能定义多个
    • 动态变量

      • 内存申请

        • malloc
        • calloc
      • 内存释放

        • free
      • 参见问题

        • 内存泄漏
        • 释放以释放的内存
    • 静态(全局)变量

      • extern变量

        • main函数外声明默认为全局变量
      • static变量

        • 静态局部变量

          • 生存期为整个程序,但其他函数不能使用
        • 静态全局变量

          • 生存期为整个程序,其他函数也能使用
  • 常量

    • 符号常量

      • #define

        • 定义数字
        • 定义语句

          • typedef类型取别名
      • const

        • 类型右边修饰

          • 禁止改写变量
        • 类型左边修饰

          • 禁止改写间接引用

            • 针对指针
      • enum

        • enum color{ red=1,blue=2,green=3,pink=4 };
    • 直接常量

      • 整形常量

        • 十进制

          • 直接书写
        • 八进制

          • 以0开头
        • 十六进制

          • 以0x开头
      • 实形常量

        • 十进制数形式

          • 0.123、1.02...
        • 指数形式

          • 123e4(e和E均可) ==> 123*10^4
      • 字符常量

        • ASCII字符

          • 单引号(')括起来的字符

            • ‘A’、'a'、'?'...
        • 转义字符

          • 不可打印字符,以()开头

            • \n、\v、\t0、\b、\t、\r、\、'
  • 程序代码区

    • 函数体二进制码

      • 声明

        • 内部函数static

          • 不能被其他文件调用
        • 外部函数extern(可省)

          • 可以被其他文件调用
        • 不能被其他文件调用
        • 可以被其他文件调用

      • 函数栈帧

符号

基本运算符

  • 算数运算符

    • 基本运算符:+ - * / %
    • 自增自减运算符:++ --
  • 关系运算符

    • < == >= <= !=

  • 逻辑运算符

    • 与(&&) 或(||) 非(!)
  • 位运算符

    • 位逻辑运算符

      • 与( & ) 位或( ^ ) 或( | ) 取反( ~ )
    • 移位运算符

      • 左移(<<) 右移(>>)

其他运算符

  • 赋值运算符

    • 复合表达式

      • +=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=
    • 赋值运算

      • =
  • 条件运算符

    • ? :
  • 逗号运算符

    • ,
  • 指针运算符

      • &
  • 字节运算符

    • sizeof
  • 强制转换运算符

    • (类型)
  • 成员运算符

    • . ->
  • 下标运算符

    • [ ]

语句

基本语句

  • 表达式语句

    • 赋值语句

      • A=1;
      • A=B=C=D=1;
    • 运算表达式语句

  • 函数语句

    • 函数调用语句

      • 直接调用

        函数名(参数列表);

      • 递归调用

        • 递归递进
        • 终止条件
    • 函数语句

      • 库函数
      • 自定义函数

        返回类型 函数名(参数列表){  函数体;}
        • 参数

          • 形参

            定义时函数列表的参数,“剧本角色”

          • 实参

            函数调用时传递进来的,"演员"

        • 返回值

          • 函数调用完得到的值
        • 参数传递

          函数中的参数都是生成的副本,传递地址可以通过取值来找到变量

          • 传值
          • 传址

            • 数组元素
            • 指针
  • 空语句

    只有一个“;”的语句

    • ;
  • 复合语句

    • { 表达式1;表达式2;... }

流程控制语句

  • 条件语句

    • if语句

      if(条件){}else if(条件){}else{}
      • if
      • if else
      • else
    • switch语句

      switch(变量){  case 条件1:表达式;break;  case 条件2:表达式;break;  ...  default::表达式;break;}
      • switch
      • case
      • defaut
    • 三元表达式

      • 条件?A:B;
  • 循环语句

    • while循环

      while(条件){  循环内容}
    • do...while循环

      do{  循环内容}while(条件);
    • for循环

      for(int i=0;条件;i++){  循环条件}
    • 转向控制

      • break跳出循环
      • continue重来一次
      • goto跳转

标准输入输出

文件

  • 打开和关闭

    • fopen(文件名,打开方式)

      • 打开方式

        • 读或写

          • r

            • 文件必须存在
          • w

            • 存在则被覆盖
          • a

            • 追加,创建
        • 可读可写

          • r+

            • 文件必须存在
          • w+

            • 存在则被覆盖
          • a+

            • 追加,创建
        • 读或写二进制

          • rb
          • wb
          • ab
      • 返回值

        • 正确:返回文件指针
        • 错误:返回NULL
    • fclose(文件指针)

    • 字符

      • int fgetc(FILE *pf)
    • 字符串

      • char * fgets(char * str,int n,FILE * pf)
    • 格式化

      • int fscanf(FILE * pf,"格式控制字符串",输出列表)

        • 标准输入stdin
        • 标准输出stdout
        • 标准错误输出stderr
    • 块读

      • size_t fread(void p,size_t size,size_t num,FILE pf)

        • p:地址
        • size*num 块大小
    • 字符

      • int fputc(int c,FILE *pf)
    • 字符串

      • int fputs(const char * str,FILE *pf)
    • 格式化

      • int fprintf(FILE * pf,"格式控制字符串",输出列表)

        • 标准输入stdin
        • 标准输出stdout
        • 标准错误输出stderr
    • 块写

      • size_t fwrite(void p,size_t size,size_t num,FILE pf)

        • p:地址
        • size*num 块大小
  • 定位

    • 移动到开头

      • rewind(FILE* fp)
    • 当前位置

      • long ftell(FILE * fp)
    • 是否到尾部

      • int feof(FILE *fp)

        • 返回0到达尾部
    • 移动指针

      • int fseek(FILE *fp,long offset,int startPos)

        • 文件开始:seek_set
        • 文件末尾:seek_end
        • 当前位置:seek_cur

屏幕、键盘

  • 输出

    • printf("格式控制字符串",输出列表);

      • 格式控制字符串

        • %[标志][输出最小宽度][.精度][长度]转换说明符
      • 转换说明符

        • 数字

          • 整型

            • 十进制

              • %d
            • 八进制

              • %o
            • 十六进制

              • %x
            • 无符十进制

              • %u
          • 实型

            • 小数

              • %f
            • 指数

              • %e
        • 字符

          • 字符

            • %c
          • 字符串

            • %s
      • 格式控制符

        • 基本输出

          • %s
        • 最小宽度

          • %-ms
        • 左边对齐

          • %-ms
        • 截取一段

          • %m.ns
        • 数字特殊

          • %ld
    • putchar(字符)

      • 输出单个字符
    • puts(字符串)

      • 输出字符串
  • 输入

    • scanf("格式控制字符串",地址列表)

      • 转换说明符(和printf类似)

        • %d
        • %o
        • %x
        • %c
        • %s
        • %f
        • %e
      • 格式控制符

        • 接收长整形,包括浮点

          • %ld
        • 接收短整型

          • %hd
        • 输入宽度

          • %10d
        • 忽略输入项

          • 全部忽略

            • %*d
          • 指定忽略

            • %*6d
    • char ch = getchar()

      • 单字符输入
    • gets(首地址)

      • 字符串输入
    • char ch = getche

      • 单字符输入不用加回车 getch同

        • 非标准库

进程

  • exit(0)退出程序

预处理

宏定义

  • #define

    • #define 宏名(参数表) 宏体
    • #define 宏名 宏体
  • #undef

文件

  • #include

    • 标准输入输出库 <stdio.h>
    • 字符串库 <string.h>
    • 控制台输入输出<conio.h>
    • 标准库头文件<stdlib.h>
    • 数学库 <math.h>

条件

  • #if
  • #elif
  • #else
  • #endif
  • #ifdef
  • #ifndef

转载于:https://www.cnblogs.com/StringSir/p/11307012.html

你可能感兴趣的文章
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
自己到底要的是什么
查看>>
Kruskal基础最小生成树
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
Java内部类详解
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
图论-次短路求法
查看>>
What's New for Visual C# 6.0
查看>>
ExtJs学习笔记之ComboBox组件
查看>>
关于收费软件
查看>>
getopt_long
查看>>
TensorFlow MNIST CNN 代码
查看>>