- 全局变量的生命周期和局部变量的生命周期
- 常量
- 字符串
- strlen出现异常在头部加#include
全局变量的生命周期是:整个程序的生命周期
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
# define _CRT_SECURE_NO_WARNINGS 1 #include//包含一个叫stdio.h的文件 //std标准(standard input output) #include
int main()
{
{
int a = 10;
printf("a=%dn", a);//ok
}
printf("a=%dn", a);//error
return 0;
}
int main()
{
//未申明的标识符
//声明extern外部符号的
extern int g_val;
printf("g_val = %dn", g_val);
//出现的是sum.c g_val的值
//g_val = 2021
return 0;
}
//sum.c中
//int g_val = 2021;
int global = 2020;
全局变量的作用域是整个工程。
void test()
{
printf("test()--%dn", global);
}
int main()
{
test();
printf("%dn", global);
return 0;
}
int main()
//局部变量的作用域是变量所在的局部范围。
{
{
int num = 6;
printf("num = %dn", num);
}
return 0;
}
int main()
{
//计算俩个数的和
int num1 = 0;
int num2 = 0;
int sum = 0;
//输入数据-使用输入函数scanf
scanf_s("%d%d", &num1, &num2);//取地址符号
//int sum = 0;
//c语言语法规定,变量要定义在当前代码块的最前面
sum = num1 + num2;
printf("sum = %dn", sum);
return 0;
}
int a = 30;
int main()
{
{
printf("%dn", a);
}
return 0;
}
int a = 100;
int main()
{
int a = 10;
//局部变量和全局变量名字建议不要相同-容易产生误会,产生bug
//当局部变量和全局变量的名字相同时,局部变量优先
printf("%dn",a);
return 0;
}
int num2 = 20;//全局变量-定义在代码块之外的变量
int main()
{
int num1 = 10;//局部变量-定义在代码块之内的变量
return 0;
}
%d-打印整型
%c-打印字符
%f-打印浮点数字-打小数
%p-以地址的形式打印
%x-打印16进制数字
%o…
//char 字符数据类型
char ch = 'A';//内存里申请一块地方命名ch
printf("%cn",ch);//%c--打印字符格式的数据
//short int - 短整型
//int—整型
int age = 20;
printf("%dn",age);//%d--对应打印整型十进制数据
//long 长整型
long num = 100;
printf("%dn", num);
//单精度浮点型
float f = 5.0;
printf("%fn", f);
//双精度浮点型
double d = 3.14;
printf("%lfn", d);
int main()
{
//年龄
//20
short age = 20;//向内存申请俩个字节=16个比特位用来存放20
float weight = 95.6f;//向内存申请四个字节存放小数
return 0;
}
int main()
{
printf("%dn", sizeof(char));//1个字节
printf("%dn", sizeof(short));//2个字节
printf("%dn", sizeof(int));//4个字节
printf("%dn", sizeof(long));//4/8个字节
printf("%dn", sizeof(long long));//8个字节
printf("%dn", sizeof(float));//4个字节
printf("%dn", sizeof(double));//8个字节
short age = 20;//比int更加节省空间
return 0;
}
int main()
{
printf("hehehehen");
return 0;
}
int main()//主函数--程序的入口
{
//这里完成任务
//屏幕上输出hello word
//函数-printf(print打印 function函数;功能)-打印函数
//库函数-C语言本身提供给我们使用的函数
//别人的东西-打招呼
//#include 包含
printf("hello000n5555");
return 0;
}
//int 是整型的意思
//main前面的int表示mian函数调用返回一个整型值
int main()
{
return 0;//返回零
}
常量
C语言中的常量分为:字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量
枚举常量
枚举–一一列举
性别:男、女
三原色:红、黄、蓝
星期:一、二、三
枚举关键字 - enum
enum COLOR {
RED,
YELLOW,
BLUE,
};
int main()
{
enum COLOR color = BLUE;//枚举类型创建出的变量可以修改
color = YELLOW;
BLUE = 6//error 枚举常量不能修改
printf("%dn", RED);
return 0;
}
enum Sex
{
MALE,
FEMALE,
SECRET,//枚举常量
};
int main()
{
//enum Sex s = FEMALE;
printf("%dn", MALE);//0
printf("%dn", FEMALE);//1
printf("%dn", SECRET);//2
return 0;
}
//#define定义的标识符常量
#define MAX 10
int main()
{
int arr[MAX] = { 0 };
printf("%dn", MAX);
return 0;
}
int main()
{
//const - 常属性
const int n = 10;//n是变量但是又有常属性,所以说n是常变量
//加了const值不能改变
//int arr[n] = { 0 };
n = 20;
//const修饰的常变量
const int num = 4;
printf("%dn", num);
num = 8;
printf("%dn", num);
3;//字面常量
100;
3.14;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
scanf("%d%d", &num1,&num2);//scanf 是C语言提供的 scanf_s是vs编译器提供的,不具有跨平台性/可移植性
//# define _CRT_SECURE_NO_WARNINGS 1 解决
sum = num1 + num2;
printf("sum = %dn", sum);
return 0;
}
字符串
int整型 float浮点型
char字符类型
字符串类型
int main()
{
"abcdef";//双引号引起
"hello bit";
"";//空字符串
return 0;
}
strlen出现异常在头部加#includeint main()
{
char arr1[] = "abc";//3
char arr2[] = { 'a','b','c'};//随机值 一直没有搜索到0所以一直往后统计直到随机值为0
printf("%dn", strlen(arr1));//strlen - string length -计算字符串长度的
//#include
//#include表示包含字符串处理函数的头文件,是C语言中的预处理命令
printf("%dn", strlen(arr2));
return 0;
}
int main()
{
//数据在计算机上存储的是二进制
// #av$
// a--97
// A--65
// .....
// ASCII 编码
// ASCII 码值
char arr1[] = "abc";//用数组存起来
//"abc"--'a' 'b' 'c' ' '--' '指的是字符串的结束标志
char arr2[] = {'a','b','c',0};
//'a' 'b' 'c'
//字符串的结束标志是一个 的转义字符。在计算字符串长度的时候 是结束标志,不算做字符串内容
//' '-0
//'a'-97 每个字符都有个值
printf("%sn", arr1);//打印字符串用%s
printf("%sn", arr2);
return 0;
}
转义字符
转变原来的意思
int main()
{
printf("c:test32test.c");
//t变成了转义字符
//t水平制表符 Tab空白
return 0;
}
int main()
{
printf("abcn99");//n换行 n就是个普通字符
return 0;
}
常见转义字符
‘n’ 换行
‘r’ 回车(不换行)
‘ ’ 空字符,通常用作字符串结束标志
‘t’ 水平制表
‘v’ 垂直制表
‘b’ 退格
‘f’ 走纸换页
‘a’ 响铃报警提示音
’ "’ 一个双引号
‘’’ 单引号
‘’ 一个反斜线
‘?’ 问号
‘ddd’ 1到3位八进制ASCII码值所代表的字符
‘xhh’ 1到2十六进制ASCII码值所代表的字符
““还可以转义”“使”“就是个普通的””
int main()
{
printf("%cn", ''');//打印‘
return 0;
}
int main()
{
printf("%sn", """);
return 0;
}
int main()
{
printf("%dn", strlen("c:test32test.c"));
//"t"算一个转义字符
//”32“算一个转义字符
//32作为八进制代表的十进制数字,作为ASCII码值,对应的字符
//32-->10进制 26->作为ASCII码值代表的字符
//3*8^1+2*8^0=26
return 0;
}



