C语言
C语言基础

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 007F0xxxxxxx
0000 0080 ~ 0000 07FF110xxxxx 10xxxxxx
0000 0800 ~ 0000 FFFF1110xxxx 10xxxxxx 10xxxxxx
0001 0000 ~ 0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

scanf、gets、puts函数

scanf能按照指定的格式将输入的内容分配给变量

int a;
int b;
scanf("%d %d", &a, &b);

或者使用getsputs专门负责字符串的输入和输出

char str[10];
gets(str);
puts(str);

getcharputchar被用于处理一个字符的输入和输出

char c = getchar();
putchar(c);