32个关键字
基本数据类型:short、int 、long、float、double、char 、unsigned 、signed (8个)
复合数据类型:struct 、 union、enum (3个)
语句结构:if 、esle、do、while、for、switch、case、default、break、continue、goto(11个)
类型修饰符:extern 、static、const、volatile (4个)
其他:sizeof、typedef、void、return、auto、register (6个)
extern:
extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。
static:
1、修饰局部变量的时候,可以延长其生命周期,直至主程序运行结束
2、修饰全局变量的时候,全局变量只可以在本文件中使用,其他文件不可用(隐藏)
3、修饰函数的时候, 函数只可以在本文件中使用,其他文件不可用(隐藏)
==const:==将修饰的对象变成只读属性
1、修饰变量
2、修饰指针:看const修饰的对象,将类型去掉,离谁最近就修饰谁
const char *p1=&a 修饰*,不能通过*改变指向的空间的值,可以理解为*p1 不能变 char*const p1=&a 修饰指针变量p1,指针指向不能变,p1不能变,可以通过p1但改变指向空间的值 const char*const p1=&a 指针指向(p1)不能变,不能通过*p1修改指向空间的值
3、修饰函数参数
4、修饰函数返回值
typedef:给类型进行重命名 typedef old new
C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。
起别名的目的不是为了提高程序运行效率,而是为了编码方便。#include <stdio.h> //普通变量 typedef short INT16; typedef int INT32; typedef long INT64; typedef long long INT64; // 数组类型 typedef int (array10)[10]; // 数组指针类型 typedef int (*parray10)[10]; //重定义结构体 typedef struct student { char name[20]; int id; int grade; }student; int add(int a,int b) { return a+b; } //函数指针变量 int (*p1)(int a,int b)=add; //函数指针类型 //重定义一个函数指针类型 typedef int(*pfunction)(int a,int b); int main() { array10 a1={0}; student s1; student *p2=&s1; pfunction p1=add; printf("%d\n",p1(1,2)); printf("%d\n",a1[0]); return 0; }