[数据结构]()
C 结构体、C 共用体、C 数组、C 指针、、、、、

存储类、auto、register、static、extern

C 函数、定义函数、返回类型、函数名称、参数、函数主体、返回语句、函数声明、调用函数、控制权、函数参数、可变参数(...)、传值调用、引用调用、

--------------------------------------------------
Functions、The type of functions、Declaring functions、The return statement、Arguments to functions、Function prototypes、Argument Conversions、Function definitions、Compound statements and declarations、
函数、声明函数、函数返回值、
--------------------------------------------------
对象是命名的存储区域; 左值是指向对象的表达式
通过赋予变量类型和名称来声明变量(例如 int k;)
通过给它一个类型和名称(例如int * ptr)来声明指针变量,其中星号告诉编译器名为ptr的变量是一个指针变量,该类型告诉编译器指针指向的类型(整数)在这种情况下)。
声明变量后,我们可以通过在其名称前面加上一元&运算符来获取其地址,如&k。
我们可以通过使用* ptr中的一元'*'运算符来“取消引用”指针,即引用它指向的指针的值。
变量的“左值”是其地址的值,即它存储在存储器中的位置。变量的“rvalue”是存储在该变量中的值(在该地址处)。

预处理器指令、函数、变量、语句 & 表达式、注释

# include <stdio.h>
int main()
{
/*这里是注释*/
printf("心飞教程 \n");
}

编译 & 执行 C 程序、C 的令牌(Tokens)
C 数据类型、基本类型、枚举类型、void 类型、派生类型
派生类型:`指针类型`、`数组类型`、`结构类型`、`共用体类型`、`函数类型`
算术类型:包括两种类型:`整数类型`和`浮点类型`

整数类型:`char `、`unsigned char`、`signed char`、`int`、`unsigned int`、`short `、`unsigned short`、`long `、`unsigned long`
浮点类型:`float `、`double `、`long `、`long double`

C 中的`变量定义`、C 中的`变量声明`、C 中的`左值(Lvalues)`和`右值(Rvalues)`
C 常量、字面量、整数常量、浮点常量、字符常量、字符串常量、
定义常量:`#define 预处理器`、`const 关键字`

C 存储类、`auto 存储类`、`register 存储类`、`static 存储类`、`extern 存储类`

C 运算符、算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、杂项运算符
杂项运算符:`sizeof() 变了大小`、`& 变量地址`、`* 指向一个变量`、`? : 条件表达式`

C 函数、定义函数、函数声明、调用函数、函数参数、参数调用、引用调用

C 数组、`type arrayName [ arraySize ];`、`double username[10];`、

C enum(枚举)、`enum 枚举名 {枚举元素1,枚举元素2,……};`、

C 指针、`指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址` 、`type *var-name;`、 `int *ip; /*一个整型的指针*/`

C 中的 NULL 指针、函数指针、

回调函数、

回调函数
函数指针作为某个函数的参数、
函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数、
简单讲:回调函数是由别人的函数执行时调用你实现的函数

C 字符串、C 结构体、`struct 语句`、C 共用体、`union 语句`、C 位域、
C typedef、C 输入 & 输出、stdin、stdout、stderror
getchar() & putchar() 函数、gets() & puts() 函数、scanf() 和 printf() 函数、

C 文件读写、C 预处理器、C 头文件、C 强制类型转换
、整数提升、C 错误处理、C 递归、C 可变参数、C 内存管理、C 命令行参数、

#

[C 结构体]()

结构是 C 编程用户自定义的数据类型,
允许存储不同类型的数据项、结构用于表示一条记录

[C 共用体]()

共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。
您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。
共用体提供了一种使用相同的内存位置的有效方式。

[返回值]()

函数可以返回C支持的任何类型(数组和函数除外),包括指针、结构和联合。
对于无法从函数返回的类型,通常可以通过使用指针来回避限制。

函数可以递归调用。
函数可以返回您可以声明的任何类型,除了数组和函数(您可以通过使用指针在某种程度上绕过该限制)。 返回无值的函数应返回void。
始终使用函数原型。
如果在程序中的任何位置调用或定义函数,则会导致未定义的行为,除非原型始终在每个调用或定义的范围内,或者您非常非常小心。
假设您正在使用原型,函数调用的参数值将转换为形式参数的类型,就像使用=运算符分配它们一样。
不带参数的函数应该有一个带有(void)作为参数规范的原型。
采用可变数量参数的函数必须至少使用一个命名参数; 变量参数由...表示,如下所示:
int
vfunc(int x, float y, ...);

[引用传递]()

通过引用传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。
传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问

C知识要点-个人总结的更多相关文章

  1. CentOs7下systemd管理知识要点

    centOs7的一个巨大的变动就是用systemd取代了原来的System V init.systemd是一个完整的软件包,安装完成后有很多物理文件组成,大致分布为,配置文件位于/etc/system ...

  2. [CISCO] 转载:冲突域与广播域(区别、知识要点)

    [CISCO] 转载:冲突域与广播域(区别.知识要点) 1.传统以太网操作(Ethernet Connection Ethernet) 传统共享式以太网的典型代表是总线型以太网.在这种类型的以太网中, ...

  3. SDR软件无线电知识要点(三)EVM

    SDR软件无线电知识要点(三)EVM 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) provid ...

  4. SDR软件无线电知识要点(一)噪声系数与噪声因子

    SDR软件无线电知识要点(一)噪声系数与噪声因子 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) ...

  5. RIP 知识要点

    RIP知识要点: UDP:520 版本:v1(广播包更新) / v2(组播更新 224.0.0.9  ) 度量值:跳数(最多跳15跳,路由为16跳时路由不可达) =================== ...

  6. javascript必须知道的知识要点(二)

    该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 内建对象可划分为数据封装类对象.工具类对象.错误类对象 ...

  7. javascript必须知道的知识要点(一)

    该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 语句 注释 输出 字面量 变量 数据类型 typeof ...

  8. Golang 接口与反射知识要点

    目录 Golang 接口与反射知识要点 1. 接口类型变量 2. 类型断言 3. 鸭子类型 4. 反射机制 5. reflect 包 TypeOf().ValueOf() Type().Kind() ...

  9. 总结了零基础学习Java编程语言的几个基础知识要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面   初学者先弄清这 ...

  10. Python原来这么好学-1.3节: 知识要点总结与内容复习

      这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员: 本教程面向的是零编程基础的同学,非科班人士,以及有一定编 ...

随机推荐

  1. Openwrt单独编译某一个模块而不是整个固件

    make package/rt2860v2/compile 就是在make menuconfig那个目录下执行此命令就会编译rt2860v2这个模块

  2. Linq to Objects for Java

    好几年不写博客了,人也慢慢变懒了.然而想写了却不知道写点啥,正好最近手头有点小项目就分享一下经历. 现在 java 的大环境下,基本都是围着 spring 转,加上一堆其他的库.有了架子就开始搞业务了 ...

  3. 以证书的方式登录ssh

    常常要登录多台Linux服务器,过去在Windows下使用SecureCRT,比较省心,配置还可以放到云盘,实时同步.现在改用MAC貌似就没有那么好用的东西了,每次ssh命令登录都需要输入密码,很烦. ...

  4. Notification通知代码简洁使用

    1.自定义发送 Notification 的使用 1.1 通知(消息)的创建 ---------------详细介绍篇 // 不带消息内容 NSNotification *notification1 ...

  5. The working copy "Test" failed to commit files.问题解决

    1.产生来源及现象 1.1 来源:往图片资源中替换旧图片资源,导致与原来的图片产生冲突. 1.2 原因分析 2.解决办法 删了重新加一下就可以提交了

  6. Python-OpenCV中的cv2.threshold

    目录 cv2.threshold()   主要记录Python-OpenCV中的cv2,threshold()方法:官方文档 cv2.threshold() def threshold(src, th ...

  7. std::ostream_iterator用法

    Defined in header <iterator>    template< class T, class CharT = char, class Traits = std:: ...

  8. 树链剖分【洛谷P4114】 Qtree1

    P4114 Qtree1 题目描述 给定一棵n个节点的树,有两个操作: CHANGE i ti 把第i条边的边权变成ti QUERY a b 输出从a到b的路径中最大的边权,当a=b的时候,输出0 码 ...

  9. MySQL使用总结

    本篇博客,主要是对MySQL使用的一些总结,会持续更新. MySQL下载安装不再赘述.去官网即可.有企业版和社区版. 用命令行的方式:   1. 先运行MySQL目录的bin下的mysqld.exe ...

  10. Mybatis学习笔记(五) —— Mapper.xml(输入映射和输出映射)

    一.parameterType(输入类型) 1.1 传递简单类型 <!-- 根据用户id查询用户 --> <select id="queryUserById" p ...