文章目录
C程序结构
C 程序主要包括以下部分:
- 预处理器指令
- 函数
- 变量
- 语句 & 表达式
- 注释
以下是一个例子
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序 \*/
return 0;
}
数据类型
整数类型
char 1 字节 -128 到 127 或 0 到 255
unsigned char 1 字节 0 到 255
signed char 1 字节 -128 到 127
int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295
short 2 字节 -32,768 到 32,767
unsigned short 2 字节 0 到 65,535
long 4 字节 -2,147,483,648 到 2,147,483,647
unsigned long 4 字节 0 到 4,294,967,295
浮点类型
float 4 字节 1.2E-38 到 3.4E+38 6 位小数
double 8 字节 2.3E-308 到 1.7E+308 15 位小数
long double 16 字节 3.4E-4932 到 1.1E+4932 19 位小数
变量和常量
变量
int a;//声明,也是定义,是需要建立存储空间的
extern int a; //只是声明,不是定义。不需要建立存储空间的,说明变量a可以在别的文件中定义
常量
在 C 中,有两种简单的定义常量的方式:
使用 #define 预处理器。#define LENGTH 10
使用 const 关键字。const int LENGTH = 10;
左值和右值
C 中有两种类型的表达式:
左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
C存储类
存储类定义 C 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。
- auto,是所有局部变量默认的存储类。
- register,储在寄存器中而不是 RAM 中的局部变量
- static,指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。
- extern,extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当您使用 ‘extern’ 时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。当您有多个文件且定义了一个可以在其他文件中使用的全局变量或函数时,可以在其他文件中使用 extern 来得到已定义的变量或函数的引用。可以这么理,extern 是用来在另一个文件中声明一个全局变量或函数。extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候
运算符
- 算术运算符,略
- 关系运算符,与&&,或||,非!
- 位运算符,&与,|或,~取反,^异或,>>右移
- 赋值运算符,略
- 杂项运算符,sizeof & 三元
- 运算符优先级,略
条件语句
- if else
- switch
switch(表达式)
{
case 常量表达式1:语句1;[break];
case 常量表达式2:语句2;[break]