#includeint main() { printf("Hello, World! n"); return 0; }
main() 函数,代码从 main() 函数开始执行
用于注释说明
printf() 用于格式化输出到屏幕
#include 是一个预处理命令,用来引入头文件
return 0; 语句用于表示退出程序
C 编译器 c语言属于编译型语言,也就是要把源代码,转换成计算机所理解的语言。
令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。分号是语句结束符。
C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称;
只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。
基础数据类型:整数类型和浮点类型。
void 表明没有可用的值。
派生类型:指针类型、数组类型、结构类型、共用体类型和函数类型。
推荐大家可以去菜鸟教程学习:菜鸟教程
类型大小:
#includeint main() { printf("int 存储大小 : %lu n", sizeof(int)); // %lu 为 32 位无符号整数 return 0; }
#include变量:是一个盒子;变量的名称可以由字母、数字和下划线字符组成。#include int main() { printf("float 存储最大字节数 : %lu n", sizeof(float)); printf("float 最小值: %En", FLT_MIN ); printf("float 最大值: %En", FLT_MAX ); //%E 为以指数形式输出单、双精度实数 printf("精度值: %dn", FLT_DIG ); return 0; }
extern int i; //声明,不是定义 int i; //声明,也是定义
变量的声明有两种情况:
- 1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。
- 2、另一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。
C 中有两种类型的表达式:
- 左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
- 右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
变量是左值,因此可以出现在赋值号的左边。数值型的字面值是右值,因此不能被赋值,不能出现在赋值号的左边。
常量0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制
| a | 警报铃声 |
| b | 退格键 |
| f | 换页符 |
| n | 换行符 |
| r | 回车 |
| t | 水平制表符 |
| v | 垂直制表符 |
#includeint main() { printf("HellorWorldn"); printf("hellotworldn"); printf("黑马程序员n"); return 0; }
定义常量的方式:
- 使用 #define 预处理器。
- 使用 const 关键字。
#include存储类#define pi 3.14 //定义pi常量 int yuan(int r){ //定义函数 int ch; ch=2*pi*r; //周长 return ch; } int cft(){ const int length=5; //长 const int width=3;// 宽 int s; s=length*width; //面积 return s; } int main() { int re; int result; re=yuan(3); res=cft(); printf("%dn",re); printf("%d",result); return 0; }
auto 存储类是所有局部变量默认的存储类。
register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个字),且不能对它应用一元的 '&' 运算符(因为它没有内存位置)。
寄存器只用于需要快速访问的变量。
static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。
static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。
全局声明的一个 static 变量或方法可以被任何函数或方法调用,只要这些方法出现在跟 static 变量或方法同一个文件中。
extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当您使用 extern 时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。通常用于当有两个或多个文件共享相同的全局变量或函数的时候。
运算符 算术运算符| % | 取模运算符,整除后的余数 | B % A 将得到 0 |
| ++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
| -- | 自减运算符,整数值减少 1 | A-- 将得到 9 |
| == | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 为假。 |
| != | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (A != B) 为真。 |
与&&,或||,非!
位运算符位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值。
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
赋值| += | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 | C += A 相当于 C = C + A |
| -= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 | C -= A 相当于 C = C - A |
| *= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 | C *= A 相当于 C = C * A |
| /= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 | C /= A 相当于 C = C / A |
| %= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 | C %= A 相当于 C = C % A |
| <<= | 左移且赋值运算符 | C <<= 2 等同于 C = C << 2 |
| >>= | 右移且赋值运算符 | C >>= 2 等同于 C = C >> 2 |
| &= | 按位与且赋值运算符 | C &= 2 等同于 C = C & 2 |
| ^= | 按位异或且赋值运算符 | C ^= 2 等同于 C = C ^ 2 |
| |= | 按位或且赋值运算符 | C |= 2 等同于 C = C | 2 |
| sizeof() | 返回变量的大小。 | sizeof(a) 将返回 4,其中 a 是整数。 |
| & | 返回变量的地址。 | &a; 将给出变量的实际地址。 |
| * | 指向一个变量。 | *a; 将指向一个变量。 |
| ? : | 条件表达式 | 如果条件为真 ? 则值为 X : 否则值为 Y |



