C语言学习笔记

数据类型

  • 基本类型:整数类型、浮点类型
  • void类型 :表示没有可用的值
  • 枚举类型:表示定义离散数据
  • 派生类型:比如:指针类型、数组,结构类型,函数类型,共用体类型。其中数组和结构称为聚合类型,函数类型指的是函数返回值的类型。

C 中的变量声明

变量的声明有两种情况:

  • 一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。
  • 另一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。 例如:extern int a 其中变量 a 可以在别的文件中定义的。

C 常量

常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。

常见常量
1、整数常量
  • 整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。
  • 整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。
2、浮点常量

浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。

当使用小数形式表示时,必须包含整数部分、小数部分,或同时包含两者。当使用指数形式表示时, 必须包含小数点、指数,或同时包含两者。带符号的指数是用 e 或 E 引入的。

double f = 314e2; //31410^2–>31400.0
double f2 = 314e-2; //314
10^(-2)–>3.14

  • float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D或者d, 以明确其为double类型。
3、字符常量

字符常量可以是一个普通的字符(例如 ‘x’)、一个转义序列(例如 ‘\t’),或一个通用的字符(例如 ‘\u02C0’)

定义常量

在 C 中,有两种简单的定义常量的方式:

  • 使用 #define 预处理器。
  • 使用 const 关键字,const 声明常量要在一个语句内完成:

请注意,把常量定义为大写字母形式,是一个很好的编程习惯。

C 存储类

auto // auto 存储类是所有局部变量默认的存储类。
register //存储类用于定义存储在寄存器中,且不能位运算
static //声明static 变量或方法能被任何函数或方法调用,要求在同一个文件中
extern //extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的

C 运算符

位运算符

主要&、 | 和 ^ ,分别是按位与,按位或和异或
规律就是,与:全为1为1,或:只要有一个为1为1,亦或:不相同为1,相同为0;
补充:

~,取反,有符号区分
<<,左移,二进制左移运算符,<<2,十进制乘以2^2,也就是4
>>,右移,二进制右移变小,>>2,十进制除以4

赋值运算符

特殊的赋值运算符

>>= ,右移且赋值运算符,C >>= 2 等同于 C = C >> 2

杂项运算符

sizeof(),返回变量的大小。
&,返回变量地址,如 &a; 将给出变量的实际地址。
*,指向一个变量,如 *a; 将指向一个变量。
? :,如果条件为真 ? 则值为 X : 否则值为 Y

C 指针

每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。

  • 指针也就是内存地址,指针变量是用来存放内存地址的变量。
  • 星号是用来指定一个变量是指针。
  • 在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值
指针计算

(1) 指针的每一次递增,它其实会指向下一个元素的存储单元。
(2) 指针在递增和递减时跳跃的字节数取决于指针所指向变量数据类型长度,比如 int 就是 4 个字节。
(3)指针数组,*p[MAX],max是设置的数组大小。
(4) 一个指向指针的指针变量必须声明为 **p。

函数指针

函数指针是指向函数的指针变量。例如:

int (* p)(int, int)
//调用d = p(a, b); 

结构体

共用体

共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。但是任何时候只能有一个成员带有值,最后赋值会把其他的值的位置占用。

C 位域

C typedef

C 预处理器

所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始。

#define 定义宏
#include 包含一个源代码文件
#undef 取消已定义的宏

预定义宏

DATE 当前日期,一个以 “MMM DD YYYY” 格式表示的字符常量。
TIME 当前时间,一个以 “HH:MM:SS” 格式表示的字符常量。
FILE 这会包含当前文件名,一个字符串常量。
LINE 这会包含当前行号,一个十进制常量。

C 头文件

头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。
有两种类型的头文件:
(1) 程序员编写的头文件
(2)编译器自带的头文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝多芬也爱敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值