1fn+f5运行 fn+f10一步一步运行
显示结果: 项目名称–>属性–>链接器–>系统–>子系统–>控制台()
\n是换行作用
数据类型:让我们内存使用率更高
char: //字符类型
short //短整型
int //整型
long //长整型
long long //更长的整型
float //单精度浮点数
double //双精度浮点数
#include
int main()
{
printf("%d\n",sizeof(char));//1
printf("%d\n",sizeof(short));//2
printf("%d\n",sizeof(int));//4
printf("%d\n",sizeof(long));//4
printf("%d\n",sizeof(long long));//8
printf("%d\n",sizeof(float));//4
printf("%d\n",sizeof(double));//8
return 0 ;
}
注意:sizeof(long)>=sizeof(int)即可
//后面的数字表示字节。
计算机中的单位:bit 比特位 一个比特位可以储存一个1或者0
byte 字节 一个字节等于八个比特位
kb–mb–gb–tb–pb换算都是1024
打印格式
%c --打印字符格式的数据 打印字符
%f --打印浮点数 小数
%p --以地址的形式打印
%x --打印十六进制数
%o --打印八进制数
%d --打印整数十进制数据 -打印整型
%s --字符串类型
初赋值作用,尽量要初赋值
局部变量:(优先性):
#include
int b=100//在这里b为全局变量
int a=200//在这里a为全局变量
int main()
{
int a=10;//这里为局部变量
printf("%d\n",a);//当局部变量和全局变量名字相同时,优先的是局部变量,尽量不让他们名字相同
return 0;
}
(区域性):
#include
int main ()
{
{
int a=10
}
printf("%d\n",a);//这里无法打印,因为局部变量a只能在它所处的区域里面使用
return 0;
}
# include
int main()
{
//计算两个数的和
int num1 = 0;
int num2 = 0;//这里两个零都是初赋值,换成其他的数值也行
//输入数据-使用输入函数
int sum = 0;//这里就是最前面
scanf("%d%d", &num1,& num2);/*这里可能会显示scanf被忽略的问题,可以使用scanf_s函数
查看scanf笔记*/
//int sum =0----C语言规定:变量要定义在当前代码块的最前面
sum = num1 + num2;
printf("sum=%d\n", sum);
return 0;
}
&是取地址符号
C语言规定:变量的定义要在当前代码块的最前面
作用域:程序设计概念,一段程序代码中所用到的名字宾并不总是有效的/可用的。。
而限定这个名字的可用性的代码范围就是这个名字的作用域。(哪里可以用,哪里就是它的作用域)
# include
int main()
{
{
int num=0;/*这里不能打印,因为这里的int num=0作用域(当前代码块)限制了,
无法打印,类似于局部变量*/
}
int num = 0;
printf("num=%d\n", num);//这里可以打印num=0,表示在这个代码块是int num =0的作用域
return 0;
}
# include
int main()
{
printf("num=%d\n", num);
{
int num=0;//这里可以打印,以为这处的代码块被外面代码块包含
}
return 0;
}
extern声明:
可以使用另一个源文件里面声明过的量
在大括号外面也可以用,项目外面也也可以用
生命周期
局部变量:进入它的作用域 生命周期开始,出去则结束
全局变量的生命周期在整个程序
1.字面常量
2.const修饰的变量
常变量,有常属性,但本质上还是个变量,在使用常量时,没有办法使用,
#include
int main()
{
//const---常属性
const int num = 4;//num不能更改了
printf("%d\n", num);
//num = 8;//这里的num无法更改
printf("%d\n", num);
return 0;
}
3.#define定义的标识符常量
#include
#define MAX 10//定义的标识符常量
int main ()
{
int arr[MAX] = { 0 };
printf("%d\n", MAX);
return 0;
}
4.枚举常量:枚举常量是不能改的,但是枚举里面的变量是可以改的
#include
enum SEX
{
MALE,
FEMALE,
SECRET
};
int main()
{
//枚举关键字 enum
enum SEX s = FEMALE;//这里s是枚举里面的变量
printf("%d\n", MALE);//0
printf("%d\n", FEMALE);//1
printf("%d\n", SECRET);//2
return 0;
}
“hello bit”
“”----空字符串
注:字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是标志。不算作字符串内容。
char arr1[]="abc"; //"abc"='a''b''c''\0' '\0'是字符串的结束标志,不算字符串的内容
char arr2[]={
'a','b','c'}; //就是'a''b''c'没有结束标志,会出现随机值加\0与0都一样
转义字符 | 注释 |
---|---|
? | 连续书写多个问号时,防止被解析成三字母词 |
\ | 用于表示一个斜杠 |
\a | 警告字符 |
\b | 退格 |
\f | 进纸 |
\v | 垂直制表符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\ddd | 八进制 |
\xdd | 十六进制 |
关于八进制与十六进制:
#include
#include
int main ()
{
printf("%s\n",strlen("c:\test\32\test.c"))//13,其中\32是一个字符。
return 0;
}
注释
用来解释代码
函数
自己定义一个加法函数的例子:
#include
int HHH(int x, int y)//这里括号后面不能加分号,否则会显示:应输入声明
{
int z = 0;
z = x + y;
return z;//这里需要返回z,如果返回的是0,那么总结果为0,如果返回的是3,那么总结果为3
}
int main()
{
int tm1 = 1;
int tm2 = 2;
int sum;
scanf_s("%d%d", &tm1, &tm2);
//sum = tm1 + tm2;
sum = HHH(tm1, tm2);
printf("%d\n", sum);
return 0;
}