0%

Review C

Review C Notes

基础

数据类型

C 数据类型

为了得到某个类型或某个变量在特定平台上的准确大小,您可以使用 sizeof 运算符。表达式 sizeof(type) 得到对象或类型的存储字节大小。

1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <limits.h>

int main()
{
printf("int 存储大小 : %lu \n", sizeof(int));

return 0;
}

常量

常量

可以使用 const 或 define 定义常量

函数

函数

函数包括 函数声明和函数定义,函数参数可以是传值调用,也可以是引用调用。

进阶

数组

数组

数组定义方式

1
2
3
4
// 大小固定为 10
double balance[10];
// 大小为 {} 数据的个数
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

和其他语言是有些区别的,比如 java 中 int[] array (因此,便有了定义数组时兼容 C 语言定义数组的说法)。

指针

指针

  • 指针的定义
1
2
3
4
int    *ip;    /* 一个整型的指针 */
double *dp; /* 一个 double 型的指针 */
float *fp; /* 一个浮点型的指针 */
char *ch; /* 一个字符型的指针 */

所有实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,对应指针的值的类型都是一样的,都是一个代表内存地址的长的十六进制数。

不同数据类型的指针之间唯一的不同是,指针所指向的变量或常量的数据类型不同。

函数指针

函数指针

字符串

字符串

结构体

结构体

结构体类似于 Java 中的类,自定义一个包含不同数据类型的模块。

1
2
3
4
5
6
7
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book = {"C 语言", "RUNOOB", "编程语言", 123456};;

比如这里的 Books 结构体,之后就可以用这个 Books 定义变量了。当然,定义变量的形式是多种多样的。

  • 结构体可以是函数参数
  • 也可以定义结构体指针
  • 可以嵌套定义

使用时 books.title,books.author 。使用 . 操作符即可。

typedef

typedef

  • C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字

typedef vs #define

#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:

  • typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
  • typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。

实用

输入、输出

输入/输出

C 语言提供了许多内置的函数用于处理各种不同场景的输入输出。

文件读写

C 预处理器

预处理器

简单来说,预处理器完成了文本替换的工作,提高的代码的复用性。

头文件

头文件

内存管理

内存管理

加个鸡腿呗.