2021-02-18 分类: 网站建设
数据类型,预处理,常量的定义,变量及运算符.
----------------------------------------------------------------------------------------------------
C语言语法体系: 基本所有高级语言都可以这样划分.
1.数据类型 :
1.基本数据类型 : 整型,字符型,浮点型(float,double).
2.数组类型 : 一维数组(数组与字符串),二维数组,多维数组.
3.指针类型.
4.结构体类型.
5.共用体类型.
6.void空类型.
7.枚举型.
2.运算符与表达式.
3.C语言程序结构.
1.预处理 : 预定义符号,宏定义,文件包含,条件编译.
2.函数 : 函数的定义,函数的申明,函数的调用,函数特殊参数的传递,标准I/O.
3.控制语句 : 条件判断语句,循环语句,无条件跳转语句,转向语句.
----------------------------------------------------------------------------------------------
一、数据类型:
1.基本数据类型:
整型: int unsigned int : 数据长度4字节.
short unsigned short : 数据长度2字节.
long unsigned long : 数据长度4字节.
编程中表示方法: 8进制表示(0****),十进制表示(****),十六进制表示(0x********).
字符型: char : 数据长度1字节.
unsigned char : 数据长度1字节.
编程中表示方法: ASCII码(十进制整型数)表示,单个字符表示'a'.
浮点型: float : 数据长度4字节,6~7位有效数字(十进制).
double : 数据长度8字节,15~16位有效数字(十进制).
long double : 数据长度8字节,18~19位有效数字(十进制).
有效数字 : 非零数位开始的数位的个数.
编程中表示方法: 十进制表示,指数形式表示 : <十进制数>E(e)<指数>.比如2.38743E3 = 2387.43.
2.其它数据类型:
1.数组 : 数组就是同种数据类型数据的一个集合.数组中的元素(数据)在内存中是按顺序存储的.
2.指针 : 存储设备中每一个字节的存储空间都有一个地址,这个地址C语言中我们称之为指针.指针变量就是用于存储指针的变量.
3.结构体: 结构体用于保存多种数据类型的数据.一个结构体中可以包含多种数据类型的变量,这些变量我们称之为结构体成员.
4.共用体: 共用体与结构体几乎一模一样,区别在于结构体的大小由结构体成员的数据长度和决定.而共用体的大小由共用体中大数据长度的成员的数据长度决定.
5.void型: void可以表示"空",也就是没有,比如void test(){}就表示函数没有返回值.
void也可以表示任意数据类型,比如void a;就表示变量a的数据类型没有定义,可以根据需要进行数据传入.
6.枚举类型: 不做介绍.
3.volatile类型修饰符:
volatile作为关键字,确保指令不会因为编译器的优化而省略,也就是防止编译器对相应代码进行优化删除.
例如 : int a[3];
a[0] = 1;
a[0] = 2;
a[0] = 3;
这段代码在机器中表示不同的操作,会依次执行.但编译器会将上面4条语句优化为 : int a[3];
a[0] = 3;
这样就省略中间两条代码.而键入volatile(volatile int a[3];)就能避免编译器的优化而依次执行所有语句.
4.数据类型强制转换:
数据类型强制转换就是将一种数据类型转换为另外一种数据类型.
转换方法: (强转数据类型)<变量名>.
c语言中,float型数据在进行运算时是自动转换为double型数据进行处理的.
比如: int a = 3;
printf("%f",(float)a);
----------------------------------------------------------------------------------------------
二、"字"与"字节序":
1."字和"字长":
能够由计算机一次完成处理的数据称之为字,不同CPU体系结构的字长会有所区别.现在通用的处理器(32位)字长是4字节(32bit).对于64位处理器而言,它的字长就是8字节(64bit).我们不要将"字长"与"数据长度"混淆,更不要与"字节"混淆.
2.字节序:
字节序是数据在内存中的存储方式.是一个字中,各个字节在内存中存放的顺序.
1.大端模式: 数据的高字节存储在低地址中,低字节存储在高地址中.
2.小端模式: 数据的高字节存储在高地址中,低字节存储在低地址中.
比如对于多字节数据0x4567ABCD
----------------- -----------------
地址 数据 地址 数据
0x0000000C CD 0x0000000C 45
0x00000008 AB 0x00000008 67
0x00000004 67 0x00000004 AB
0x00000000 45 0x00000000 CD
大端模式 小端模式
预处理:
预处理是编译前所做的工作.编译前,编译器自动调用预处理程序对源码中'#'开头的预处理部分进行处理,处理完毕之后,进入源码的编译阶段.
1.预定义符号:
常用的预定义符号: __FILE__ : 编译的源文件名.
__FUNCTION__ : 当前所在函数的函数名.
__DATE__ : 编译日期.
__TIME__ : 编译时间.
2.宏定义: 自定义一个宏(要符合标识符的命名规则),用于表示任意数据或者表达式.
无参宏定义: #define 宏名 宏替换
比如: #define A 35 //A就代表整型数据35.
#define TEST "abddgdsfdlfj" //TEST就代表"abddgdsfdlfj"
#define TEST abddgdsfdlfj //TEST就代表abddgdsfdlfj
带参宏定义: #define 宏名(参数表) 宏替换
比如: #define M(a,b) a+b-2
K = M(1,2) + 4;
---> K = (1 + 2) - 3 + 4
3.文件包含:
#include <name.h> //包含系统头文件.
#include "name.h" //包含自定义头文件.
文件包含允许嵌套,即在一个被包含文件中可以包含其它文件.
4.条件编译: 根据不同的条件编译不同代码段.
#ifdef 宏名 //如果定义了宏"宏名",则编译代码段. #ifndef 宏名 //定义了宏"宏名",则编译代码段
代码段; 代码段;
#endif #endif
#ifdef 宏名 //如果定义了宏"宏名",则编译代码段1,否则编译代码段2;
代码段1;
#else
代码段2;
#endif
---------------------------------------------------------------------------------------------
#ifndef 宏名 //如果没有定义宏"宏名",则编译代码段1,否则编译代码段2;
代码段1;
#else
代码段2;
#endif
---------------------------------------------------------------------------------------------
#if 表达式 //判断表达式的逻辑值(真或假),若逻辑值为真,则编译代码段1,否则编译代码段2.
代码段1;
#else
代码段2;
#endif
----------------------------------------------------------------------------------------------
三、常量的定义:
1.const关键字定义常量:
1.普通常量: <cosnt> <数据类型> <常量名> = <常量值>;
2.const涉及指针: 暂时不做讲解,有兴趣的同学课后可以看看.
<const> <数据类型> *<指针变量名>;
: const修饰的是常量数据.指针变量存储的指针(地址)可以改变,但是存储的指针(地址)指向的数据是一个不
能改变的常量。
<数据类型> *const <指针常量名>;
: const修饰的是常量指针.指针的指向,也就是指针本身是一个不能改变的常量,但指针指向的数据可以改变.
2.宏定义常量:
#define 宏名 常量
比如: #define A 35 //A就表示常量值35.任何地方使用宏A等于使用整型常量35.
变量,运算符与表达式.
局部变量与全局变量简介.
四、总结:
上面是本人对于C基础知识做出的总结,如果有哪位小伙伴对C感兴趣的话,可以私信我回复“资料”,我这里整理了许多对小白有用处的资料欢迎大家一起讨论学习C.
分享标题:C语言——基础知识——预处理,常量定义,数据类型
文章URL:https://www.cdcxhl.com/news28/101628.html
成都网站建设公司_创新互联,为您提供电子商务、网站排名、外贸网站建设、用户体验、网站制作、建站公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联
猜你还喜欢下面的内容