#include<stdio.h>
int main(){
int i = 0;
printf(“%d\n”, i); // this is explanation
return 0; /* this is also legal
}
类型
内置基本类型:整形(int,char,long,unsigned int,unsigned long long)、浮点(float,double,long double),void
派生类型:指针类型(T*)、数组类型(T name [12])
自定义类型:结构体类型(struct)、共用体类型(union)、枚举类型(enum)和函数类型(int Fname (int, int))
赋值与初始化:unsigned long long int a = 5ull;【0xffff, 0777】
float f = 12E-5L【3.14f】
转义字符:\n, \t, \b, \\, \’, %%
const int ci = 0;
#define ci 0
static int si = 0; //静态变量
extern int a; //扩展作用域
运算符
算术:+ - * / % ++ --
逻辑:&& || !
判断:>= <= > < != == ?:(短路)
位运算:& | ^ ~ >> <<
其他:sizeof(), &(reference),->, *(dereference)
分支:
if ( expression ){
}
else{
} //else从近
switch (int){
case 0:
break;
case 1:
break;
default:
break;
}
循环:
while (expression){
if (){ break; continue;}
}
for (int i = 0; i < 9; ++i){
}
do{
}while (expression);
函数
void Fname (int var1, char var2[]){
return ;
}
数组
int arr[5] = {0};
指针
int* pa = &a;
void (*pf)(int, char []) = &Fname;【or Fname】
int (*parr)[5] = &arr;
void* p = NULL;
枚举
typedef enum Weekend{
Sunday = 9, Saturday
}Weekend;
字符串
char str [3] = “a1”;
char* p = “C Language”;
函数:strcmp (compare), strcpy (copy), strlen (length), strstr (substr), strcat (concatenate)
结构体&联合体&位域
struct stu{
int age;
char ID;
}Zhangsan;
struct stu* pst = &Zhangsan;
int A = pst->age;【or Zhangsan.age】
union Data{
int data1;
char data2;
}data;
struct Info{
int Height : 4;
int Sex : 1;
};
输入输出
I:scanf,gets,getchar
O:printf, puts, putchar
F:fopen, fclose, fputc, fgetc, fputs, fgets
动态内存
malloc, calloc(置0),free,memset, realloc
命令行参数
int main( int argc, char *argv[] ){}
argument count(数目),argument vector(字符串数组)
argv[0] 存储程序的名称,argv[1] 是一个指向第一个命令行参数的指针