Day1
#define _CRT_SECURE_NO_WARNINGS 1 的使用
解决不安全函数报错问题
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h> **//包含头文件**
int main() **//主函数 一个工程中只能有一个main函数**
{
printf("hello\n");**//库函数printf打印信息的 \n换行 ;结束该行代码**
return 0;
}
char 字符数据类型
int 整型
short短整型
long长整型
long long长长整型
float 单浮点
double双浮点
sizeof(xx)判断变量或计算类型所占空间大小
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
printf("%d\n",sizeof(char));
**//%d按整数的实际长度输出 %c单个字符 %s字符串 %d整型 %f浮点型 %lf双浮点**
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;
}
定义变量
int age=20;//int 变量类型 age变量名字
局部变量和全局变量
{}内部的为局部反之为全局
局部变量和全局变量名称一样时,局部优先。因此不建议将局部和全局名称取一样
#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int sum = 0;
scanf("%d %d", &a, &b); **//scanf()输入 &a:取数据存入a &b:取数据存入b**
sum = a + b;
printf("%d\n", sum);
return 0;
}
作用域(scope):变量何处可用何处为其作用域
局部变量的作用域:变量所在的局部范围
全局变量的作用域:整个工程
注:使用前需声明extern**+变量类型+变量名字**
变量的生命周期:变量创建和销毁的时间段
局部变量的生命周期:进入局部范围开始,出范围结束
全局变量的生命周期:程序的生命周期
常见常量:
const修饰常变量不可更改,但本质仍是变量。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
const int a = 0;
int a = 1; //error
printf("a=%d", a);
return 0;
}
#define定义标识符常量 通常不可更改
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
#define Mini 18
int a = Mini;
printf("Mini=%d", Mini);
return 0;
}
枚举常量enum:可以一一列举的常量 (默认值从0开始,可以赋初值)
格式:
enum+变量
{可能取值用,隔开};
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
enum transport
{
bike,// 输出为0 1 2 3 or bike=1 此时输出为1 2 3 4
car,
train,
plane//四个量为枚举的未来可能取值
};
int main()
{
enum transpot way=bike;
printf("way=%d\n",bike);
printf("way=%d\n", car);
printf("way=%d\n", train);
printf("way=%d\n", plane);
return 0;
}
字符串string:由双引号囊括的英文字符就称为字符串。(\0是字符串的结束标志)
#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
int main()
{
char arr[] = "hello world";//字符串的末尾隐藏了一个"\0"的字符
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
int main()
{
char arr1[] = "qwe";
char arr2[] = { 'q','w','e' };
printf("%s\n", arr1);
printf("%s\n", arr2);//此时因为没有结束字符\0将持续打印下去,就会出现乱码。
return 0;
}
求字符串长度strlen(需要引用头文件#include <string.h>否则会出现警报)
#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[] = "qwe";
char arr2[] = {'q','w','e'};
printf("%d\n",strlen(arr1));//输出发现虽然string隐藏了一个\0,但是在计算长度时并不算进去。
printf("%d\n",strlen(arr2));//因为没有结束标志\0因此会输出随机值。
return 0;
}
转义字符:转变其原本意思
注:转义字符当计算字符长度时是看成一个字符的。
举例:
#include <stdio.h>
int main()
{
printf("%s\n","\"");//此时输出为单个\。//error printf("%s\n",""")
printf("%c\n",'\'');//此时输出为单个'。//error printf("%c\n",''')
printf("%c\n",'\130');//\ddd为8进制转化为10进制后对照ASCII表找到字符如\130=88(%d)=X(%c)
printf("%c\n",'\x30');//\xdd为16进制转化为10进制后对照ASCII表找到字符如\x30=48(%d)=0(%c)
return 0;
}