1.#include <stdio.h> //头文件.h printf("%d 的阶乘为 %f\n", i, factorial(i)); 当上面的代码被编译和执行时,它会产生下列结果: 15 的阶乘为 1307674368000.000000
int main( )
{
printf( "hello world");
return 0;
}
2.整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后缀,后缀是 U 和 L 的组合,
U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。
3.1.strcpy(s1, s2); 复制字符串 s2 到字符串 s1。 2 strcat(s1, s2); 连接字符串 s2 到字符串 s1 的末尾。 3 strlen(s1);返回字符串 s1 的长度。 4 strcmp(s1, s2);如果 s1 和 s2 是相同的,
则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。5 strchr(s1, ch);返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。6 strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。
4.#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:
typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。
5. 打开文件 FILE *fopen( const char * filename, const char * mode );
关闭文件 int fclose( FILE *fp );如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回 EOF
写入文件 int fputc( int c, FILE *fp );函数 fputc() 把参数 c 的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF
int fputs( const char *s, FILE *fp );函数 fputs() 把字符串 s 写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF
int fprintf(FILE *fp,const char *format, ...) 函数来写把一个字符串写入到文件中
读取文件 int fgetc( FILE * fp ); fgetc() 函数从 fp 所指向的输入文件中读取一个字符。返回值是读取的字符,如果发生错误则返回 EOF
char *fgets( char *buf, int n, FILE *fp );函数 fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区 buf,并在最后追加一个 null 字符来终止字符串
int fscanf(FILE *fp, const char *format, ...) 函数来从文件中读取字符串,但是在遇到第一个空格和换行符时,它会停止读取。
6.C 预处理器(C Preprocessor)简写为 CPP
#define 定义宏
#include 包含一个源代码文件
#undef 取消已定义的宏
#ifdef 如果宏已经定义,则返回真
#ifndef 如果宏没有定义,则返回真
#if 如果给定条件为真,则编译下面代码
#else #if 的替代方案
#elif 如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个 #if……#else 条件编译块
#error 当遇到标准错误时,输出错误消息
#pragma 使用标准化方法,向编译器发布特殊的命令到编译器中
7.ANSI C 定义了许多宏
__DATE__ 当前日期,一个以 "MMM DD YYYY" 格式表示的字符常量。
__TIME__ 当前时间,一个以 "HH:MM:SS" 格式表示的字符常量。
__FILE__ 这会包含当前文件名,一个字符串常量。
__LINE__ 这会包含当前行号,一个十进制常量。
__STDC__ 当编译器以 ANSI 标准编译时,则定义为 1。
8.预处理器运算符 #define运算符
宏延续运算符(\)#define message_for(a, b) \
printf(#a " and " #b ": We love you!\n")
字符串常量化运算符(#) 当需要把一个宏的参数转换为字符串常量时,则使用字符串常量化运算符(#)。在宏中使用的该运算符有一个特定的参数或参数列表
标记粘贴运算符(##) 宏定义内的标记粘贴运算符(##)会合并两个参数。它允许在宏定义中两个独立的标记被合并为一个标记
#define 可以当方法用
#define square(x) ((x) * (x))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
9.引用头文件的语法 使用预处理指令 #include 可以引用用户和系统头文件。它的形式有以下两种:
#include <file>
这种形式用于引用系统头文件。它在系统目录的标准列表中搜索名为 file 的文件。在编译源代码时,您可以通过 -I 选项把目录前置在该列表前。
#include "file"
这种形式用于引用用户头文件。它在包含当前文件的目录中搜索名为 file 的文件。在编译源代码时,您可以通过 -I 选项把目录前置在该列表前
只引用一次头文件:
#ifndef HEADER_FILE
#define HEADER_FILE
the entire header file file;
#endif
有条件引用:
#if SYSTEM_1
# include "system_1.h"
#elif SYSTEM_2
# include "system_2.h"
#elif SYSTEM_3
...
#endif
10. C 语言提供了 perror() 和 strerror() 函数来显示与 errno 相关的文本消息。
perror() 函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。
strerror() 函数,返回一个指针,指针指向当前 errno 值的文本表示形式。
11.格式说明由“%”和格式字符组成 格式字符有d,o,x,u,c,s,f,e,g等。
如%d整型输出,%ld长整型输出,%o以八进制数形式输出整数,%x以十六进制数形式输出整数,或输出字符串的地址。
%u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误。
%.2f用来输出实数,保留小数点2位。 %e以指数形式输出实数。 %g根据大小自动选f格式或e格式,且不输出无意义的零。
%d int %f float %e double
12.常用函数:
sizeof(int num); 字节大小
scanf("%f",&number);屏幕输入
printf("%f",number);屏幕输出
sqrt(number);计算一个非负实数的平方根
pow(x,y);求x的y次方的值
putchar(int char) 把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中
注意:函数参考查找C标准库,C标准库是一组C内置函数、常量和头文件,比如 <stdio.h>、<stdlib.h>、<math.h>,等等。这个标准库可以作为 C 程序员的参考手册。