C语言-002

农村四月闲人少,勤学苦攻把名扬。这篇文章主要讲述C语言-002相关的知识,希望能为你提供帮助。
March 3.24 一,常见的?报错或者警告(VS2019版)?
1.函数不安全问题
解决:
1.1方法一:根据此报错提示,在文件最前面加上如下代码:?#define _CRT_SECURE_NO_WARNINGS?

#define _CRT_SECURE_NO_WARNINGS
//1.对vs-ide声明,不用管这个不安全的函数,为提高函数可移植性

#include < stdio.h>

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.字面常量
#include < stdio.h>
int main()

3; //这就是一个字面常量
100;//直接写出来就好,现在我还真不知道他的作用和意义
return 0;

2.const修饰的?常变量?
#include < stdio.h>
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 定义的标识符常量
#include < stdio.h>

#define Max 100 //标识符常量

int main()


int arr[Max] =1 ;
printf("%d\\n", Max);
printf("%d\\n", arr[0]);

return 0;

4.?枚举?常量(enum定义)
#include < stdio.h>
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 赋值或者输出时:字符用单引号,字符串用双引号
#include < stdio.h>
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是字符.我的理解:?键盘上所有的的键都可以是字符?
#include < stdio.h>

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个八进制数字
//\\xdddd表示两个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,改法同上。?
【C语言-002】

四,注释
1.两种注释
//单行注释,经常使用
/**/ 多行注释 ,不支持嵌套

2.注释快捷键ctrl+k+c   == 整段代码全部注释 ctrl+k+u== 整段代码取消注释五,选择语句
1.if语句
#include < stdio.h>

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(

    推荐阅读