#define _CRT_SECURE_NO_WARNINGS 1
//包含一个叫stdio.h的文件
//std-标准 srandard input output
#include <stdio.h>
int main()
//主函数-程序入口-main函数有且仅有一个{
//这里完成任务
//在屏幕上输出hallo world
//函数printf f-function
//库函数-C语言本身提供给我们使用的函数
//使用别人的东西-打招呼
//#include
printf("hallo XIA\n");
return 0;
}
//int 是整型的意思
//main前面的int表示main函数调用返回一个整型值
#define _CRT_SECURE_NO_WARNINGS 1
//包含一个叫stdio.h的文件
//std-标准 srandard input output
#include <stdio.h>
int main()
{
char ch = 'A';//内存
printf("%c", ch);//%c 打印字符格式的数据
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
//包含一个叫stdio.h的文件
//std-标准 srandard input output
#include <stdio.h>
int main()
{
int age = 20;
printf("%d\n" , age);//%d打印十进制数值
return 0;
}
各种%?的表示
short (int) = 短整型
int = 整型
long = 长整型
%d=打印整型
%c=打印字符
%f=打印浮点型(小数)
%p=以地址的形式打印
%x=打印十六进制
%o......
#define _CRT_SECURE_NO_WARNINGS 1
//包含一个叫stdio.h的文件
//std-标准 srandard input output
#include <stdio.h>
int main()
{
float f = 5.0;
printf("%f\n" , f);//%d打印十进制数值
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
//包含一个叫stdio.h的文件
//std-标准 srandard input output
#include <stdio.h>
int main()
{
double d = 3.14;
printf("%lf\n" , d);//%d打印十进制数值
return 0;
}
#include <stdio.h>
int main()
{
//年龄
//20
short age = 20;//向内存申请两个字节(16bit)用来存放20
float weight = 95.6f;//向内存申请四个字节(32bit)存放小数
return 0;
}
C语言规定
sizeof(long)>=sizeof(int)
全局变量与局部变量
#define _CRT_SECURE_NO_WARNINGS 1
//包含一个叫stdio.h的文件
//std-标准 standard input output
#include <stdio.h>
int num2 = 20//全局变量——定义在代码块({})之外的变量
int main()
{
int num1 = 10;//局部变量——定义在代码块({})内部的变量
return 0;
}
全局变量与局部变量设定相同情况下
#include <stdio.h>
int a = 100;//全局变量——定义在代码块({})之外的变量
int main()
{
int a = 10;
printf("%d\n",a);
return 0;
}
输出结果
10
进程已结束,退出代码为 0
局部变量和全局变量的名字建议不要相同——容易误会产生bug
当局部变量和全局变量相同时,局部变量优先(就近原则)
局部变量只能在局部内使用
示例
#include <stdio.h>
int main()
{
{
int a = 10;
}
printf("%d\n",a);
return 0;
}
显示运行报错
全局变量可在全局使用
示例
#include <stdio.h>
int a = 10;
int main()
{
printf("%d\n",a);
return 0;
}
数字相加
错误示例
#include <stdio.h>
int main()
{
//计算两个数的和
int num1 = 1;
int num2 = 0;
scanf("%d%d", num1,num2)
return 0;
}
需添加&——取地址符号
修改后
#include <stdio.h>
int main()
{
//计算两个数的和
int num1 = 1;
int num2 = 0;
scanf("%d%d", &num1,&num2);
return 0;
}
增加打印流程
#include <stdio.h>
int main()
{
//计算两个数的和
int num1 = 1;
int num2 = 0;
scanf("%d%d", &num1,&num2);
int sum = num1 + num2;
printf("sum = %d\n" , sum);
return 0;
}
————报错————C语言语法规定,变量要定义在当前代码块的最前面
修改后
#include <stdio.h>
int main()
{
//计算两个数的和
int num1 = 1;
int num2 = 0;
int sum = 0;
scanf("%d%d", &num1,&num2);
sum = num1 + num2;
printf("sum = %d\n" , sum);
return 0;
}
输出
10
20
sum = 30
进程已结束,退出代码为 0
变量的作用域和生命周期
1.局部变量
#include <stdio.h>
int main()
{
int num = 0;
printf("num = %d\n" , num);
return 0;
}
此时num作用域正确,可以正常运行
错误示范:
#include <stdio.h>
int main()
{
{
int num = 0;
}
printf("num = %d\n" , num);
return 0;
}
此时num作用域错误,局部变量无法拓展到上一级代码块
2.全局变量
#include <stdio.h>
int num = 100;
int main()
{
printf("num = %d\n" , num);
return 0;
}
此时num作为全局变量
————调用外部全局变量
创建文件num.c
int num = 2021;
重写main.c
#include <stdio.h>
int main()
{
//未声明的标识符
//声明
extern int num;
printf("num = %d\n" , num);
return 0;
}
通过extern int num完成继承操作
生命周期
#include <stdio.h>
int main()
{
{
int num = 1
printf("num = %d\n" , num);//ok
}
printf("num = %d\n" , num);//error
return 0;
}
退出代码块({})后num生命周期结束
局部变量:进入作用域生命周期开始,出作用域生命周期结束。
全局变量:整个程序的生命周期