C语言-002

Posted 深海爬行鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言-002相关的知识,希望对你有一定的参考价值。

March 3.24

一,常见的​报错或者警告(VS2019版)

1.函数不安全问题

C语言-002_#include

解决:

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​文件移入,名字要一样。

C语言-002_#include_02


二,常量

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运行结果

C语言-002_字符串_03

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个八进制数字
// \\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码表

C语言-002_操作符_04


2.3 ​问题​ :打印ASCII码时控制台显示不了,如下

C语言-002_操作符_05

​解决问题方法,这个方法是修改注册表,别人的主意,不是我的,是我引用的,没有抄袭的意思​

1.看控制台属性->当前代码页,我们要把936改为437

C语言-002_操作符_06

2.打开regdit,修改注册表,如下

C语言-002_#include_07

C语言-002_字符串_08

3.修改完成后再运行代码,成功

C语言-002_#include_09

4.再看控制台属性,ok

C语言-002_操作符_10

5​.注意:这个438不支持中文,想要显示中文就再改回936,改法同上。


四,注释

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(C语言学习002:第一个完整的C程序代码

C语言-002

C语言再学习-002-+-*/><……

C语言再学习-002-+-*/><……

c语言中如何将10进制的浮点数转化为16进制数

linux c语言 中ascii的问题