C知识要点-个人总结
[数据结构]()
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知识要点-个人总结的更多相关文章
- CentOs7下systemd管理知识要点
centOs7的一个巨大的变动就是用systemd取代了原来的System V init.systemd是一个完整的软件包,安装完成后有很多物理文件组成,大致分布为,配置文件位于/etc/system ...
- [CISCO] 转载:冲突域与广播域(区别、知识要点)
[CISCO] 转载:冲突域与广播域(区别.知识要点) 1.传统以太网操作(Ethernet Connection Ethernet) 传统共享式以太网的典型代表是总线型以太网.在这种类型的以太网中, ...
- SDR软件无线电知识要点(三)EVM
SDR软件无线电知识要点(三)EVM 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) provid ...
- SDR软件无线电知识要点(一)噪声系数与噪声因子
SDR软件无线电知识要点(一)噪声系数与噪声因子 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) ...
- RIP 知识要点
RIP知识要点: UDP:520 版本:v1(广播包更新) / v2(组播更新 224.0.0.9 ) 度量值:跳数(最多跳15跳,路由为16跳时路由不可达) =================== ...
- javascript必须知道的知识要点(二)
该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 内建对象可划分为数据封装类对象.工具类对象.错误类对象 ...
- javascript必须知道的知识要点(一)
该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 语句 注释 输出 字面量 变量 数据类型 typeof ...
- Golang 接口与反射知识要点
目录 Golang 接口与反射知识要点 1. 接口类型变量 2. 类型断言 3. 鸭子类型 4. 反射机制 5. reflect 包 TypeOf().ValueOf() Type().Kind() ...
- 总结了零基础学习Java编程语言的几个基础知识要点
很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面 初学者先弄清这 ...
- Python原来这么好学-1.3节: 知识要点总结与内容复习
这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员: 本教程面向的是零编程基础的同学,非科班人士,以及有一定编 ...
随机推荐
- Android View部分消失效果实现
本文来自网易云社区 作者:孙有军 老需求 我们经常会有需求就是View消失的效果,这里我们说的消失往往是全部消失,我们可能采用一个alpha动画,在指定的时间内消失掉View,出现则实现相反的动画.我 ...
- Linux的防火墙iptables配置示例
注:内容来自网络 一.关闭防火墙 1.重启后永久性生效: 开启:chkconfig iptables on 关闭:chkconfig iptables off 2.即时生效,重启后失效: 开启:ser ...
- 33 个 2017 年必须了解的 iOS/swift 开源库第三方库
本文翻译自Medium,原作者为 Paweł Białecki<img src="https://pic3.zhimg.com/v2-c786777447261347b0d97 ...
- P1592 互质
题意:输入两个正整数n和k,求与n互质的第k个正整数. $n≤10^6,k≤10^8$ 可以枚举出互质的数,居然发现,有循环节.... 比如10 与其互质的1 3 7 9 11 13 17 ...
- HDU6298 Maximum Multiple (多校第一场1001)
Maximum Multiple Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- kuangbin专题十二 POJ1661 Help Jimmy (dp)
Help Jimmy Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14214 Accepted: 4729 Descr ...
- centos7上面关闭防火墙
CentOS 7.0默认使用的是firewall作为防火墙:若没有启用iptables 作为防火墙,则使用以下方式关闭防火墙: systemctl stop firewalld.service 关闭开 ...
- 使用RestTemplate时报错java.lang.IllegalStateException: No instances available for 127.0.0.1
我在RestTemplate的配置类里使用了 @LoadBalanced@Componentpublic class RestTemplateConfig { @Bean @LoadBalanced ...
- 复习一知识点:回调函数callback
比如我们常用的异步请求: $.ajax({ url:"test.json", type: "GET", data: {username:$("#use ...
- 树莓派编译安装 FFmpeg(添加 H.264 硬件编解码器支持)
说明 FFmpeg 是一套开源的音视频编解码库,有非常强大的功能,包括视频采集功能.视频格式转换等.众所周知视频编解码是一个非常消耗系统资源的过程,而树莓派自带了 H.264 的硬件编解码器,因此本文 ...