#include :
#include是在程序编译之前要处理的内容,称为编译预处理命令。编译预处理命令还有很多,它们都以"#"开头,并且不用分号结尾,所以是c语言的程序语句。
puts和printf的区别:
puts和printf的区别在于puts的功能更单一,只能输出字符串,而printf可以根据给定的格式输出多种类型的数据,print:打印,f:function函数。
主函数:
程序的入口,从main函数开始执行,不能没有main函数,main函数有且只能有一个。返回值可以为void
int main ()
return 0;
库函数:
c语言本身提供的函数,使用前需要声明:#include【包含一个叫stdio.h的文件】
std: standard标准
数据类型:
char:字符 输出: byte位数:1,即8bit位
char a = 'a'
printf ("%c\n", a)
short:短整形 byte位数:2,即16bit位,可存储2^16个数字
int:整形 输出: 4 byte位数:4
int a = 10;
printf ("%d\n", a)
long:长整形 byte位数:4/8
long long:更长整形 byte位数:位数:8
float:单精度浮点小数 byte位数:4
double:双精度浮点小数 byte位数:8
总结:
%d : 打印整形
%c : 打印字符
%(l)f : 打印浮点型, 加l表示双精度
%p : 以地址的形式进行打印
%x : 打印十六进制
%u:无符号10进制整数 unsigned int
//string? c语言中不存在!(c++存在)
输入函数:
scanf ("%d%d",&num1,&num2) //表示输入两个整形(%d)分别赋值给num1和num2
&:取地址符号
scanf_s:非自带函数,只能在vs里使用,不建议使用。
scanf报错解决:第一行添加:#define _CRT_SECURE_NO_WARNINGS 1
常量:
定义:const(常属性)或者#define(标识符常量)或enum(枚举常量),不可更改
例子:const int num = 5;
define MAX = 10;
enum Sex {
MALE,
FEMALE
enum Sex s = MALE;
printf("%d\n",MALE); //打印结果为0,FEMALE为1
#define:
#define identifier value
即:#define 名称 值(类型不用指明,类似python)
字符串:
由双引号""定义,可用数组存储:
char arr1
= "abc";
printf ("%s\n", arr1);
'\0' 表示字符串的结束标识
char arr2
= {'a','b','c',0};
printf ("%s\n", arr2);//打印结果同上,不加0则不一样(没有结束标识会继续读取)
数据类型转换:
C 语言中如果一个表达式中含有不同类型的常量和变量,在计算时,会将它们自动转换为同一种类型;在 C 语言中也可以对数据类型进行强制转换;
自动转换规则:
1.浮点数赋给整型,该浮点数小数被舍去;
2.整数赋给浮点型,数值不变,但是被存储到相应的浮点型变量中;
强制类型转换形式: (类型说明符)(表达式)
实例程序:
#include
int main()
float f,x=3.6,y=5.2;
int i=4,a,b;
a=x+y;
b=(int)(x+y);
f=10/i;
printf("a=%d,b=%d,f=%f,x=%f\n",a,b,f,x);
例中先计算 x+y 值为 8.8(5.2+3.6),然后赋值给 a,因为a为整型,所以自取整数部分8,a=8;接下来 b 把 x+y 强制转换为整型;最后 10/i 是两个整数相除,结果仍为整数 2,把 2 赋给浮点数 f;x 为浮点型直接输出(a=8,b=8,f=2.000000,x=3.600000)
extern关键字:
例如:extern int a:
显式的说明了a的存储空间是在程序的其他地方分配的,在文件中其他位置或者其他文件中寻找a这个变量。
也可在局部函数中通过extern来引用全局变量,如:
#include
// 函数外定义变量 x 和 y
int x; int y;
int addtwonum() {
// 函数内声明变量 x 和 y 为外部变量
extern int x; extern int y;
// 给外部变量(全局变量)x 和 y 赋值
x = 1; y = 2;
return x+y;
int main() {
int result;
// 调用函数
addtwonum result = addtwonum();
printf("result 为: %d",result);
return 0;
结果:
result 为: 3
运算符:
基本:+-*/
%:取余
比较:>、=、>二进制右移