CTRL k+c //选择部分全部全部注释 CTRL k+u //解除注释
可以在VS上直接点
#define _CRT_SECURE_NO_WARNINGS 1
.c--源文件
.h--头文件 head
一般代码都有一个框架
int main()
{
return 0;
}
//包含一个叫stdio.h的文件
//std-标准 standard input output
#include<stdio.h>
//main前面的int表示main函数调用返回一个整形值
int main() //主函数-程序的入口 不能没有main函数 也不能有多个main函数 有且仅有一个
{
//这里完成任务
//在屏幕上输出hello world
//函数-print function -printf-打印函数
//库函数-C语言本身提供给我们使用的函数
printf("hehe\n");
return 0;//返回 0
}
写一个代码
#include<stdio.h>
int main()
{
printf("hehe\n");
return 0;
}
数据类型
char //字符数据类型 我理解的是字母ABC这种
short //短整形
int //整型 我理解的是数字
long //长整型
long long //更长的整型
float //单精度浮点数
double //双精度浮点数
%d-打印整型 我理解的是数字
%c-打印字符 我理解的是字母ABC这种
%f-打印浮点数字-打印小数
%p-以地址的形式打印
%x-打印16进制数字
……
#include<stdio.h>
//char-字符类型
int main()
{
//char ch = 'A'; //内存
// printf("%c\n",ch); //&c--打印字符格式的数据
//int age = 20;
//printf("%d\n", age); //%d--打印整型十进制数据
//long num = 100;
//printf("%d\n", num);
//float f = 5.2;
//printf("%f\n", f);
double d = 3.14;
printf("%lf\n", d); //%f也可以 但%lf更合适 %lf表示双精度浮点数
return 0;
}
//计算申请内存的大小
#include<stdio.h>
int main()
{
printf("%d\n", sizeof(char)); //1 指的是 字节
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
return 0;
}
计算机中的单位 bit-比特位 byte-字节 =8bit kb=1024byte mb=1024kb gb=1024mb tb=1024gb pb=1024tb | 二进制 10进制 0 1 2 3 4 5 6 7 8 9 2进制 0 1 8进制 0 1 2 3 4 5 6 7 | |
一共2^16种 即2^16个数字 | short//两个字节 2个字节=16个bit short能表示的二进制序列: 0000000000000000 =0 0000000000000001 =1 0000000000000010 =2 0000000000000011 =3 0000000000000100 …… 1111111111111111 | 123 十进制数字 1*10^2+2*10^1+3*10^0=123 如果是二进制表示的 010 0*2^2+1*2^1+0*2^0=2 011 0*2^2+1*2^1+1*2^0=3 |
short 2个字节 16个bit
能表示2^16个数字
但从0开始
所以最大能表示2^16-1这个数字 2^16-1=65535
如果我们想表示年龄
int age = 20; //用这个的话有点浪费 因为int是整型 申请的是4个字节 即32个bit 最大表示的数字是2^32-1
所以用short int age = 20; //更加节省空间 //向内存申请2个字节=16bit位,用来存放20
#include<stdio.h>
int main()
{
short age = 20;
float weight = 98.6f;//默认98.6是double类型,所以会出错.要在98.6后面加f就好
printf("%d\n", age);
printf("%f\n", weight);
return 0;
}
变量、常量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示
定义变量的方法
int age = 150;
float weight = 45.5f;
char ch = 'w';
变量的分类
局部变量
全局变量
#include <stdio.h>
int global = 2019;//全局变量-定义在代码块({})之外的变量
intmain()
{
int local =2018;//局部变量-定义在代码块({})内部的变量
上下有两个global,上面的属于全局变量,下面的属于局部变量,可以同时存在
printf("global = %d\n", global);
return0;
}
全局变量和局部变量名字建议不要相同--容易产生误会,产生bug
当全局变量和局部变量名字相同时,优先局部变量
加法代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
//计算2个数的和
int num1 = 0;
int num2 = 0;
int sum = 0; //C语言语法规定,变量要定义在当前代码块的最前面
//输入数据-使用输入函数scanf
scanf("%d%d", &num1, &num2);//取地址符号-&
sum = num1 + num2;
printf("sum=%d\n",sum);
return 0;
}
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的
而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
即
当我在另一个源文件中输入
int g_val=2020;
然后在之前的源文件中
#include<stdio.h>
int main()
{
//未声明的标识符
//声明-extern-外部符号的
extern int g_val;
printf("g_val=%d\n",g_val);
return 0;
}
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。