C语言综述
1.预处理指令:在变异之前执行的指令。
系统自带的文件用<>,自己写的文件用"";
.h成为头文件,用来声明一些常用的函数,假如想使用这些函数,就必须包含这个头文件(注:声明的这些函数不带函数体)。
2.编写程序->编译->链接->运行。
3.函数:
(1)主函数 main()
(2)库函数
(3)自定义函数
注意:
(1)函数位置不能颠倒:一行一行执行
(2)分成头文件test.h和函数定义文件test.c后,在main()中要引用#include "test.h",但是不能引用test.c(否则在链接的时候出错:提示重复定义了函数)。
C语言中没有的: 1.没有boolean类型,但是C语言用1和0表示
2.没有字符串类型,但是C语言用字符数组来表示,末尾加\0表示字符串数组,与普通字符数组区分。 如:char s[] = {'h','i','\0'}; char s1[3] = "hi";//末尾自动加\0了。 打印字符串: printf() puts() char s[] = "hi"; printf("%s",s);//打印出hi printf("%d",s);//打印数组s的地址
puts(s);//打印出hi
puts("hi")//打印hi //printf()与puts()的区别: 1.printf()可以输出多个字符串,printf("%s %s $s","hi","hello","good"); puts()只能输出一个字符串; 2.puts()能自动换行,printf()不可以。
\0在这里的作用:
scanf() gets()的区别: 1.gets一次只能读取一个字符串,scanf可以读取多个 2.gets可以读入包含空格、tab的字符串,直到遇到回车为止。
(stdio.h)字符处理函数:putchar() getchar() (string.h)字符串处理函数:strlen()[不包括\0这个字符];strcpy()字符串复制;strcat()字符串连接:strcmp()比较两个字符串大小[依靠assic码中字符的大小比较,逐个字符一一比较,比较出结果就结束];strlwr();strupr();
预处理指令:1.所有预处理指令都以#开头,并且无分号结束符;2.三种类型:宏定义,条件编译,文件包含。
宏定义:宏定义在编译前调用,即在编译前就做出计算;而函数在使用时才调用,也没有类型,所以宏定义效率更好 定义类型一:不带参数 #define NUM 5 其中NUM为宏,即宏名;5是用来替换宏名的字符串 定义类型二:带参数 #define mul(a,b) ((a)+(b)) 注:宏定义就是字符串替换,所以得注意括号的使用。 如:mul(2+3,3+6)/mul(2,3)
变量存储类型:
默认情况下auto修饰的自动变量可以省略auto。
static: extern:默认情况下就是外部函数的可以省略extern