C语言-002
Posted 深海爬行鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言-002相关的知识,希望对你有一定的参考价值。
March 3.24
一,常见的报错或者警告(VS2019版)
1.函数不安全问题
解决:
1.1方法一:根据此报错提示,在文件最前面加上如下代码:
#define _CRT_SECURE_NO_WARNINGS
//1.对vs-ide声明,不用管这个不安全的函数,为提高函数可移植性
int main()
int num1=0;
int num2=0;
int sum=0;
scanf("%d%d", &num1, &num2); //scanf键盘输入函数
//注意:scanf,strcpy,strlen,strcat 都是不安全的C语言库函数
sum = num1 + num2;
printf("sum = %d\\n", sum);
return 0;
1.2 方法二:找到如下路径,打开newc++file文件,添加如下语句:
#define _CRT_SECURE_NO_WARNINGS
注意:可能保存时遇到权限问题,有一个方法思路:
1.先复制newc++file到另外目录下,再添加#define _CRT_SECURE_NO_WARNINGS, 保存成功后:
2.删除原来D:\\vs2019\\Common7\\IDE\\VC\\VCProjectItems下newc++file文件,将新建的newc++file文件移入,名字要一样。
二,常量
1.字面常量
int main()
3;//这就是一个字面常量
100;//直接写出来就好,现在我还真不知道他的作用和意义
return 0;
2.const修饰的常变量
int main()
const int Vary =6;//Vary不能再修改,const限制了
int C=8;
int arr[5]=1,2,3;//5常数,所以不报错
//int arr[C]=1,2,3,4:// C是个局部变量,所以报错
//int arr[Vary]=1.2;// Vary 本质上还是个变量,所以会报错
printf("%d",arr[1];
printf("%d",vary);
return 0;
3.#define 定义的标识符常量
//标识符常量
int main()
int arr[Max] = 1 ;
printf("%d\\n", Max);
printf("%d\\n", arr[0]);
return 0;
4.枚举常量(enum定义)
int main()
enum Sex
MALE,//默认值0
FEMALE,// 默认值1
SECRET//默认值2
;
enum Week
MONDAY,//同理 0
TUESDAY,//1
WEDNESDAY,
THURDAY,
FEIDAY,
SATURDAY,//5
SUNDAY//6
;
//枚举常量(各个列举)enum标注和默认值
enum Sex s = FEMALE;
s = MALE;//注意 s是个变量 可以改,枚举常量不可以改
/*printf("%d\\n", s);//默认值1
printf("%d\\n", MALE);
printf("%d\\n", SECRET);
printf("%d\\n", SUNDAY);*/
return 0;
三,字符串
1.字符串
1.1 赋值或者输出时:字符用单引号,字符串用双引号
int main()
//char是字符类型
//"shafhkjhafk"是字符串
"abc";//怎么放,用数组
char arr01[] = "abc";
// “abc” == a,b,c,\\0
// \\0 指字符串结束标志且是隐藏的,所以后面没有再打印
char arr02[] = a,b,c,\\0;//0==\\0
char arr03[] = a,b,c ;
printf("%s\\n", arr01);//%s输出字符类型
printf("%s\\n", arr02);
printf("%s\\n", arr03);
printf("%d\\n", strlen(arr01)); //strlen字符长度函数
printf("%d\\n", strlen(arr02)); // \\0 是字符结束符,所以终止计算长度
printf("%d\\n", strlen(arr03)); //15是随机值,即第几位找到\\0结束
//字符在计算机是二进制标识,用ASCII码表
return 0;
1.2运行结果
1.3三种数组放字符串方式
char arr01[] = "abc";
char arr02[] = a,b,c,\\0;
char arr03[] = a,b,c ;
个人建议第一种,因为方便和没有乱码
注意:这里乱码出现是因为我的数组没有限定长度。
2.转义字符
2.1,格式就是 \\+sth,这个sth是字符.
我的理解:键盘上所有的的键都可以是字符
int main()
printf("abcdefg");
// 1. \\n 转义换行
printf("\\n");
printf("abcdefg\\n");
// 2. \\t转义水平制表
printf("abc\\tcdd\\tefg ");
// 3. 注意一下: \\?是连续多个问号时用,以防三字母词
printf("\\n");
// 4. 要输出\\时 将\\转义一下得 \\\\
printf("dak\\\\fajfk\\\\fdfd\\\\sfak\\n");
// 5. 打印单引号 = \\ 双引号同理
printf("%c\\n", \\);
printf("%s\\n", "\\"");
// 6. 猜猜有几个转义字符
printf("c:\\test\\32\\test.c\\n");
printf("%d\\n", strlen("c:\\test\\32\\test.c")); //13个字符长度
printf("难点难难难,进制转换,ASCII码转化");
// \\32指 32是八进制数字 32八进制转十进制得26=3*8^2+2*8^0 再找26的ASCII码的所得的值
// 注意123,257,都可以但182不行,因为八进制中不能有大于或等于8的数,其他进制也一样
// \\ddd 表示1~3个八进制数字
// \\xdd dd表示两个16进制数
printf("%c\\n", \\x61);// 6*16^1+1*16^0得113,再对应ASCII码表输出字符
printf("%c\\n", \\32); //单引号叫字符
printf("%s\\n", "\\32"); //双引号叫字符串
return 0;
2.2 一张ASCII码表
2.3 问题 :打印ASCII码时控制台显示不了,如下
解决问题方法,这个方法是修改注册表,别人的主意,不是我的,是我引用的,没有抄袭的意思
1.看控制台属性->当前代码页,我们要把936改为437
2.打开regdit,修改注册表,如下
3.修改完成后再运行代码,成功
4.再看控制台属性,ok
5.注意:这个438不支持中文,想要显示中文就再改回936,改法同上。
四,注释
1.两种注释
// 单行注释,经常使用
/**/ 多行注释 ,不支持嵌套
2.注释快捷键
ctrl+k+c == 整段代码全部注释
ctrl+k+u == 整段代码取消注释
五,选择语句
1.if语句
int main()
printf("上课不?(0/1)\\n");// 0 ==不上课,1==上课
scanf("%d", &input01);
if(input01==1)//
printf("好好学习吗?(1/0):");// 0==不学习 ,1==好好学习
scanf("%d", &input02);
if (input02 == 1)
printf("拿到offer\\n");
else
printf(C语言学习002:第一个完整的C程序代码