1.main函数与库函数
主函数(main函数)
- main函数是程序的入口
- main函数有且仅有⼀个
- 即使⼀个项目中有多个.c文件,但是只能有⼀个main函数(因为程序的入口只能有⼀个)
若含有多个main函数,则会出现下列情况:
库函数
为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了⼀组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。这些函数组成了⼀个函数库,被称为标准库,这些函数也被称为库函数。
注意:库函数的使用是需要包含头文件的!
2.字符和ASCII编码
字符
在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语言中字符是用单引号括起来的,如:'a','b','@'。
ASCII编码
美国国家标准学会(ANSI)出台的⼀个标准编码,可以实现数字与字符之间的转换:
以下为常见ASCII码:
- 字符A~Z的ASCII码值从65~90
- 字符a~z的ASCII码值从97~122
- 对应的大小写字符(a和A)的ASCII码值的差值是32
- 数字字符0~9的ASCII码值从48~57
- 换行 \n 的ASCII值是:10
- 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,无法打印在屏幕上观察
3.转义字符
转义字符可以使字符转变原来的意思,如:'n'表示一个字符n,而\n表示换行...
以下为一些转义字符:
- \' :用于表示字符常量'。
- \a:警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
- \b :退格键,光标回退⼀个字符,但不删除字符。
- \n :换⾏符。
- \r :回⻋符,光标移到同⼀⾏的开头。
- \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数。
- \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
- \ddd :d d d表示1~3个八进制的数字。 如: \130 表示字符X
#include <stdio.h>
int main()
{
printf("%c\n", '\130');
return 0;
}
- \xdd :d d表示2个⼗六进制数字。 如: \x30 表示字符0.
#include <stdio.h>
int main()
{
printf("%c\n", '\x30');
return 0;
}
- \0:表示结束。
注意:字符串自带\0,因此不需要在结尾加上\0,若为一组数组,则需要:
#include <stdio.h>
int main()
{
char arr1[] = {'a', 'b','c', '\0'};
char arr2[] = "ab\0c";
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
若数组1不加\0,贼会发生乱码现象:
#include <stdio.h>
int main()
{
char arr1[] = { 'a', 'b','c'};
char arr2[] = "abc";
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
4.注释
/**/
内部可以分行:
/*这是一串注释*/
/*
注释
*/
注意:"/*"注释只会识别到最近的"*/"
//
这种注释只能是单⾏,可以 放在⾏⾸,也可以放在⼀⾏语句的结尾:
#include <stdio.h>//这是一个注释
int main() //这是一个注释
{
printf("Hello,World\n");
return 0;
}
5.数据类型
字符型:char
整形:int short long
[signed] char //有符号的
unsigned char //无符号的
short [int] //短整型
long [int] //长整型
long long [int] //更长的整形
浮点型:float double
float //单精度
double //双精度
long double
布尔类型:bool
布尔类型使用的头文件为:<stdbool.h>
布尔类型变量的取值是:true或者false.
#include <stdbool.h>
#include <stdio.h>
int main()
{
bool flag = true;
if(flag)
printf("I like you.\n");
return 0;
}
6.变量
全局变量
大括号外部的变量,放在内存的静态区。
局部变量
大括号内部定义的变量,放在内存的栈区。