什么是有效数字?
-------------------------
数据类型
运算符:
函数: 程序结构:
存储结构
内存管理 关键字:
------------------------- C语言:
我认为编程就是对数据操作 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx数据类型xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
基本数据类型:原子数据类型是最小数据单元: 空类型:是所有数据类型的基础。 构造数据类型:在基本数据类型的基础上构造而成的复合数据类型。
############################
基本数据类型:也称为原子数据:最小数据单元
############################
整型变量
种类: short int ,int ,long int
长度: 32位机长度:
注意; 在嵌入式系统中为了兼顾可移植性和效率:
将int的控制在unsigned int和 signed int的交集 整型常量:
开头: 以0和0x开头区分八进制和十六进制
结尾: 为了显示的表达整型数据的类型,在结尾添加L和U分别表示长整型和无符号整型
#####################
浮点型变量
种类: float double long double
长度:
有效数字: 浮点型常量
表现形式:
点分十进制:默认double类型
指数形式: 尾数E指数 3E-
########################
字符型变量:
种类: char
大小:
内容: 字符对应的ASSIC值 字符常量
形式: 用单引号括起一个字符
特殊: 特殊的字符串常量转移字符:\n \t \\ \' ###########################
指针型
指针常量:
数组名: int a[];a为地址常量;
字符串常量: char a[]=“asdf”;a为字符串常量;
C语言中没有专门的字符串常量,利用字符串所在内存的首地址表示该字符串; 指针变量:
定义; 给每个内存单元对应一个编号,利用该编号可以快速方位该内存单元;
大小: 编号就是指针:四字节,内存单元:1字节
关于*:
int *p; *是数据类型一部分
int *p,q; p是指针,q是整型变量
*p: 指针解引用符
关于二维:
二维指针: int **a; 保存变量类型一维指针的地址
二维数组指针: int (*a)[]; 保存变量类型二维数组名
二维指针数组: int *a[]; 是一个数组,元素类型为指针 野指针:
定义: 指针随机指向一块内存:
原因: 指针变量未初始化
指针已被释放
指针被手动free
指针访问越界
########################
枚举型 ####################
空数据类型:
NULL:常量值为0 void *
定义: 数据类型不确定的指针变量
作用: 通过强转可以指向任意数据类型
使用: (void *)malloc(size):用于数据类型转换;
fun(void *a):用于参数传递 ####################
构造数据类型
####################
结构体和数组:
结构体和数组型变量作为形参:
分别是值传递和地址传递;
####################
数组:
定义: 具有一定关系的若干个变量集合
种类: 数值数组,字符数组,指针数组,结构体数组
格式: 数据类型 数组名 数组长度
数组名:地址常量
数组长度:常量
注意: 防止数组访问越界;
初始化:
不初始化:
局部数组不初始化,元素值不确定。
static数组不初始化,默认值零
全局变量不初始化,默认值零
初始化:
全部初始化:定义时初始化。int a[]={,};
部分初始化:初始值比数组长度小,自动赋零。int a[]={};
赋值初始化:定义的时候无数组长度,int a[]={,};
初始化零:
直接赋值为零;int a[]={}; 字符数组和字符串:
char a[]="asdfg";
数组长度:字符个数加一,默认添加\
char *a="asdfg";
字符指针a指向一个字符串常量; 字符串处理函数函数:
赋值:strcpy(),
比较:strcmp(),
求长:strlen().
######################
结构体:
特点:
①用户自行构造
②由不同基本数据类型构成
③定义时不分配空间,定义变量时才分配;
使用:
访问结构体变量的成员:
结构体变量名.成员名
结构体指针->成员名
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx运算符xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
原则:尽量使用括号,阅读更方便;
优先级:大略分:四大天王() [] -> .
单目
双目
例如:*p++和*++p;
*p++;访问p指向的对象,p后移一位;
*++p;访问p后移一位所指向的对象;
数据类型转换:对数据类型进行临时转变,并不改变本身类型;
自动:float-》double char short-》int
强制:(类型名)表达式
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx函数xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
编程的思想:高内聚,低耦合;
格式:返回值类型 函数名 参数 函数体
==============
函数声明:
extern修饰:表示该函数定义在其他源文件中
static修饰:表示该函数只能在本文件内使用
==============
函数调用:
①函数语句
②函数表达式
③函数参数
==============
返回值 =============
函数名:
定义: 是函数指针,是一个函数的入口地址
作用: 用于回调函数(信号注册函数,线程创建函数)
回调函数三个特点:事件触发,自动运行,函数指针
==============
参数:
值传递: 形参和实参是两个变量
地址传递: 通过地址可以访问同一块内存
==============
被调函数向主调函数返回值得三种方式:
.返回值
.地址传递
.全局变量
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx程序结构xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
种类: 顺序结构,分支结构,循环结构
分支结构: if switch
循环结构: while for 跳转语句:
break:跳出循环
continue:跳出本次循环;
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx内存管理xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
内存区间分类:栈区 堆区 全局变量及静态变量区/静态存储区 代码区
malloc free
===============
栈区: 此存储方式的变量的分配和释放都是自动进行的;
堆区: 用于动态分配,在程序运行时分配空间 ,用malloc手动申请,手动free释放
静态存储区: 内存在编译时分配好,程序结束才释放例如:全局变量,静态变量,字符串常量。
代码区: 存放程序代码,只读
===============
malloc和free:两个配对使用;
malloc
格式: (void *)malloc(size);
返回值:成功返回申请内存的首地址,失败返回NULL;
free
格式: free(堆区指针)
注意: 不能重复释放 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx存储模型xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
从不同的角度分析:生存周期,作用域,种类;
==========
生存周期:
静态存储:程序运行时就分配存储空间,运行结束才释放内存
动态存储:程序运行时动态分布存储空间,使用完毕立即释放
==========
作用域:
局部变量;
定义;定义在函数模块内部的变量,
作用域;仅在函数模块内部有效
运行周期:局部变量在函数模块进入堆栈式生成,在弹出堆栈时消亡。
全局变量:
定义:定义在所有函数模块之外;
作用域:源文件
使用:可以一次定义,多次声明,声明时加修饰符extern;
==========
五种存储模型: auto register 静态空链接 静态外部链接 静态内部链接
==========
auto(自动)
局部变量默认是auto存储类型 动态存储,作用域函数模块内部,空连接,无默认初始化
===========
register(寄存器) 动态存储,作用域函数模块内部,空连接,无默认初始化
保存在cpu的寄存器中,则变量不能使用取地址符,不能修饰全局变量,长度不大于整型长度。
===========
静态 空连接 static修饰局部变量:静态存储,作用域函数模块内部,空连接,默认初始化零
===========
静态 内部链接 static修饰全局变量:静态存储,作用域函数本文件,内部连接,默认初始化零
===========
静态 外部链接 全局变量:静态存储,作用域源文件 外部链接,默认初始化零 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx关键字xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ypedef define const typedef:为变量类型取一个易记且意义明确的名字
typedef unsigned long uint32
==========
define:
预处理指令,实际就是符号替换。
==========
const;定义常变量
const int a;定义常量a
const int *a;定义*a为常量
int *const a;定义指针常量a
==========
头文件防止重复包含

C语言总结的知识点的更多相关文章

  1. 【C语言】数组知识点总结

    [C语言]数组知识点总结 标签: 数组 2018年04月12日 17:44:4481人阅读 评论(0) 收藏 举报  分类: C语言知识总结(4)  版权声明:本文为博主原创文章,未经博主允许不得转载 ...

  2. C语言程序设计基础知识点概括

    C语言程序设计基础知识点概括 C语言程序设计基础知识点1.函数是C语言的基本构成单位.main函数是C语言程序的唯一入口.2.C语言程序开发过程. 编译过程:将以.c或.cpp结尾的源程序文件经过编译 ...

  3. [置顶] 单片机C语言易错知识点经验笔记

    今天写这一篇文章并不是因为已经想好了一篇文章才写下来,而是我要将这一篇文章作为一个长期的笔记来写,我会一直更新.在进行单片机开发时,经常都会出现一些很不起眼的问题,这些问题其实都是很基础的c语言知识点 ...

  4. [C语言]易错知识点、小知识点复习(1)

    1. 计算机只能识别由0和1组成的二进制指令,需要将用高级语言(如C.C++)编写的源程序(.c..cpp)编译成二进制目标文件(.obj).一个程序可以根据需要写在不同的文件里,编译是以文件为单位进 ...

  5. C语言偏冷知识点汇总

    1.C语言函数声明中参数类型写在右括号后是什么意思?如下代码所示: int add(a, b) int a; int b; { return a + b; } 像这样的声明是什么意思,我测试过在gcc ...

  6. 计算机等级考试【二级C语言程序设计】知识点整理

    *免责声明:本文章中所收集或者引用到的内容的所有版权均为引用内容的原作者所有,本站仅作收集并整理,不承担任何法律责任! *题库收集来源于:[未来教育考试软件2017年版 - 计算机二级 - C语言程序 ...

  7. C语言面试相关知识点

    1.关键字static的作用是什么? 有三个明显的作用: 1)在函数体内,一个被声明为静态的变量在这个函数被调用过程中维持其值不变 2)在模块内(但在函数体外),静态的变量可以被模块内所有函数访问,但 ...

  8. php语言的核心知识点

    PHP:脚本语言,网站建设,服务器端运行PHP定义:一种服务器端的 HTML 脚本/编程语言,是一种简单的.面向对象的.解释型的.健壮的.安全的.性能非常之高的.独立于架构的.可移植的.动态的脚本语言 ...

  9. C语言之数据类型(知识点8)

    一.数据类型 1.数据基本类型 (1)整数 ①有符号整形 有符号短整型 short 有符号基本整形  int 有符号长整形  long ②无符号整形 无符号基本整形 无符号短整型 无符号长整型 (2) ...

随机推荐

  1. AJAX使用说明书 基础

    AJAX简介 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异 ...

  2. js打印相关,注意此方法受到IE安全性设置影响

    <HTML><HEAD><TITLE>javascript打印-打印页面设置-打印预览代码</TITLE>  <SCRIPT language=j ...

  3. 小众软件:录屏局部放大神器 ZoomIt

    名称 ZoomIt 功能 屏幕放大录制工具 说明 此款软件解决了以下几点诉求: 我们在录制软件使用教学的时候,有些操作位置细节的放大需要(局部放大) 我们在给别人讲解PPT的时候,需要标注文字,或者画 ...

  4. java——cmd命令编译带包名的源程序

    .java文件的绝对路径:C:\eclipse-workspace\test_01\src\test\try.java try.java的包名为:package test; 在cmd中 cd C:\e ...

  5. Python Pandas -- Panel

    Pandas 中一维 series, 二维DataFrame, 三维Panel class pandas.Panel(data=None, items=None, major_axis=None, m ...

  6. Python Pandas -- DataFrame

    pandas.DataFrame class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False) ...

  7. sqlt 之 分析 DB upgrade 导致SQL 性能下降 的方法 xplore

    https://blog.csdn.net/lukeUnique/article/details/79331779 https://mauro-pagano.com/2014/10/27/when-t ...

  8. swagger2使用日志

    ------------------------------------------------------------------------------------ 安装.配置.使用 参考:htt ...

  9. C# 反射(Reflection)

    反射主要用于在程序运行期间动态解析相关类的类名,命名空间,属性,方法并进行相应操作,以下通过两个简单的例子进行了说明: 示例1:调用程序集内部方法,运行时动态获取相关类的信息,包括类名,命名空间等信息 ...

  10. Mybatis学习笔记8 - resultMap自定义结果集映射规则

    一.resultMap自定义结果集映射规则 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; public ...