C 知识点
一、基本结构
#include <stdio.h> int main() { /* 我的第一个 C 程序 */ printf("Hello, World! \n"); return 0; }
c 程序会生成 .c 的文件
二、基本语法
2.1 注释
// 单行注释 /* 单行注释 */ /* 多行注释 多行注释 多行注释 */
2.2 类型
1. 基本类型 它们是算术类型,包括两种类型:整数类型和浮点类型。 2. 枚举类型 它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。 3. void 类型 类型说明符 void 表明没有可用的值。 4. 派生类型 它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。
#include<stdio.h> 头文件下 sizeof(类型) ,可以获取指定类型占用的字节数
2.3 预定义常量
#include <stdio.h> #define LENGTH 10
static int count=10; /* 全局变量 - static 是默认的 */
2.4 作用域
局部变量
在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的
全局变量
全局变量是定义在函数外部,通常是在程序的顶部。全局变量在整个程序生命周期内都是有效的,在任意的函数内部能访问全局变量
2.5 数组
//申明数组 int apples[10];
//初始化数组
int apples[3] = {3,2,5};
//如果数组个数 3 没有,则大小未数组元素个数
2.6 枚举
enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };
第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推
enum season {spring, summer=3, autumn, winter};
没有指定值的枚举元素,其值为前一元素加 1。也就说 spring 的值为 0,summer 的值为 3,autumn 的值为 4,winter 的值为 5
三、指针
指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明
int *ip; /* 一个整型的指针 */ double *dp; /* 一个 double 型的指针 */ float *fp; /* 一个浮点型的指针 */ char *ch; /* 一个字符型的指针 */
在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。赋为 NULL 值的指针被称为空指针
3.1字符串
在 C 语言中,字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
四、结构体
4.1 定义结构体
struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } book;
Books 是结构体标签,内部是成员,book 是结构体变量。
typedof 为一个类型重新定义一个新的名称
五、输入与输出
#include <stdio.h> int main() { float f; printf("Enter a number: "); // %f 匹配浮点型数据 scanf("%f",&f); printf("Value = %f", f); return 0; }
int i=10; //定义了一个整型变量
int *p=&i; //定义了一个指针指向这个变量
int **p1=&p; //定义了一个二级指针指向p指针