C语言基础
C程序基本格式
#include <stdio.h>
int main() {
printf("Hello World");
return 0;
}在C语言中,使用//和/**/来为一个程序添加注释
#include <stdio.h>
/**
* 这是一个多行注释
*/
int main() {
// 这是一个单行注释
printf("Hello World");
return 0;
}运算符
位运算
| 运算符 | 作用 |
|---|---|
| << | 左移 |
| >> | 右移 |
| & | 按位与 |
| | | 按位或 |
| ^ | 异或 |
| ~ | 按位非 |
| 运算符 | 解释 | 结合方式 |
|---|---|---|
| () | 同数学中的括号,直接提升到最高优先级 | 由左向右 |
| ! ~ ++ -- + - | 否定,按位否定,增量,减量,正负号 | 由右向左 |
| * / % | 乘,除,取模 | 由左向右 |
| + - | 加,减 | 由左向右 |
| << >> | 左移,右移 | 由左向右 |
| < <= >= > | 小于,小于等于,大于等于,大于 | 由左向右 |
| == != | 等于,不等于 | 由左向右 |
| & | 按位与 | 由左向右 |
| ^ | 按位异或 | 由左向右 |
| | | 按位或 | 由左向右 |
| && | 逻辑与 | 由左向右 |
| || | 逻辑或 | 由左向右 |
| ? : | 条件 | 由右向左 |
| = += -= *= /= &= ^= != <<= >>= | 各种赋值 | 由右向左 |
| , | 逗号(顺序) | 由左向右 |
数组
数组的创建和使用
int a[10]; // 申明一个固定长度的数组
int b[10] = {1, 2, 4}; // 数组中的元素可以不填满整个数组
int c[10] = {1, 2, [4] = 777, [9] = 666}; // 能够在初始化时为指定位置指定元素
int d[] = {1, 2, 3}; // 或者根据给定元素长度决定数组长度值得注意的是,在数组中未被赋予初始值的位置默认为脏值,而不是默认值
字符串
字符串的创建和使用
可以使用字符数组来直接存储单个字符
char str[] = {'H', 'e', 'l', 'l', 'o','\0'};但无论如何字符串末尾都必须含有\0,表示一个字符串的结束
或者使用""来更加简洁的表示一个字符串
char str[] = "Hello";在汉字常用的编码方式中:
GB2132:连续出现两个大于127的字符时,表示这是一个中文字符
BGK:只要第一个字节大于127,就表示这是一个汉字的开始,无论下一个字节是什么内容
UTF-16:规定每个字符必须使用俩个字节,即用16个bit位来表示所有的字符
UTF-8:
| Unicode符号范围(十六进制) | UTF编码方式(二进制) |
|---|---|
| 0000 0000 ~ 0000 007F | 0xxxxxxx |
| 0000 0080 ~ 0000 07FF | 110xxxxx 10xxxxxx |
| 0000 0800 ~ 0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
| 0001 0000 ~ 0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
scanf、gets、puts函数
scanf能按照指定的格式将输入的内容分配给变量
int a;
int b;
scanf("%d %d", &a, &b);或者使用gets和puts专门负责字符串的输入和输出
char str[10];
gets(str);
puts(str);getchar和putchar被用于处理一个字符的输入和输出
char c = getchar();
putchar(c);Last updated on