VS上的编译:ctrl+F7或者ctrl+Fn+F7 运行:ctrl+F5或者ctrl+Fn+F75
调试:ctrl+F10或者ctrl+Fn+F10
1,在VS上运行scanf函数时有时候会报错,我在自己编辑器上发现我的只是警告,警告是不影响程序的运行的,但是老师说有的版本可能会出现报错导致程序无法运行,这时有两个解决办法
第一种:在菜单栏找到项目→我们创建的项目的属性→C/C++→预处理命令→在预处理器定义中加上运行失败时To disable deprecation,use 后面的内容 记得在原有内容之间加入分号隔开
第二种:同样在项目的属性中的C/C++中→代码生成→安全检查→禁用安全检查即可
第三种:找到VC安装目录→找到文件夹VC→vcprojectitems→newc++file
然后使用Notepad++打开该文件,添加 # define _CRT_SECURE_NO_WARNINGS 1然后保存即可,有的版本结尾的1可以不加
注意:Notepad++是一个编程软件,需要下载,不过用途很广(百度上说的,但是应该也不出错)
从键盘上读取数字或字符
int a,b;
scanf("%d%d",&a,&b);
//通过scanf函数可实现在键盘上读取输入的数值
2,常量的种类,用法如下
常量的种类 | 说明 |
字面常量 | 就是我们给定一个常量,如1,2,3 |
const修饰的常变量 | 相当于将一个变量固定下来,让其拥有常量的属性 |
# define 定义的常量 | 效果和const修饰的常变量相同,区别是# define还可以定义函数 |
枚举常量 | 将常量一个个的在大括号中列举出来 |
1,2,3;//字面常量
//直接给出几个常量,这种就被称为字面常量
const int a=10;
//此时将a变为了一个常变量,它具有了常量的不变性,但他的本质上还是一个变量,后面不能再对a进行重新赋值
# define A 10
//同样的A变为了一个常量,后面也不能对其重新赋值
//需要注意的是结尾没有分号
enum Color{A=1,B=2,C=3};//枚举常量
//或者也可以都不赋值,那么会自动从0开始逐一赋值
3,字符与字符串
字符 | 'a'表示一个字符,'···'包起来就称为字符 |
字符串 | ”asgdfzkfdzn“表示一个字符串,"··包起来就是字符串··"字符串的结束标志是\0 |
\0仅仅是字符串的结束标志,并不算作字符串的内容,计算字符串字符长度的函数
#include <stdio.h>
#include <string.h>
//strlen函数的函数库,引用strlen函数必须在程序开头声明引用
int main()
{
char arrl[4]="abs";//数字4不太懂是什么意思,但是实测发现改成3的时候程序会报错
printf("%d",strlen(arrl));
//strlen:计算字符串的长度,\0不算在其中,所以输出结果为3
//计算字符串长度时,除\0这个转义字符不计入字符长度,其余的转义字符统统算作一个字节
return 0;
}
字符串还可以通过另一种方法来表示,通过一个集合里包含多个字符
#include <stdio.h>
int main()
{
char aeel[]="abc";//""内的表示字符串
char aee2[]={'a','b','c'};//这种方式表示字符串,由于没有\0作为结束标志
//因此用strlen计算长度时得到的是一个随机值
printf("%d/n",strlen(aeel));//输出结果为3
printf("%d/n",strlen(aee2));//输出结果为随机值
}
4,转义字符
“\”类似于转义字符的标志,在不同的字符前加入转义字符就可以对字符原本的含义进行转化
\0 | 空字符,字符串的结束标志 |
\n | 换行符 |
\' | 表示字符', |
\r | 回车,打印一个空格 |
\ddd | 表示对应八进制数转化为十进制后的对应的ASCII码值 |
\xdd | 十六进制数转化为十进制后对应的ASCII值 |
\t | 制表符,就是空出一段长度,但这段长度比空格的要长 |
对表中\ddd字符进行解释
printf("\71");//输出结果为9
//此时\后面为两位数,直接默认为八进制数071,他表示十进制数57,而57在ASCII码表中对应的字符为9
转义字符分为一般转义字符,八进制转义字符和十六进制转义字符
其中八进制转义字符和十六进制转义字符很好理解,就是其对应的十进制数所对应的ASCII值
一般转义字符指的就是形式上有两个字符组成,实际上只代表一个字符,这也与先前strlen函数计算字符长度时转义字符只看做一个字符相对应。
5,C语言中对函数的注释
①//·······:在双斜杠后写入注释内容,这种方法比较流行,但是只能注释单行的内容
②/*·······*/:中间加入注释内容,这种方法不支持嵌套,即注释中不能在插入注释
6,if判断语句和while循环语句
if(i<6)//括号中加入判断条件
{
prinf("a=110");
}
else
{
printf("a=120");
}
while(i<8)//进入while循环时,会对判定条件进行判断,符合条件进入循环
//执行完大括号内的内容后,又返回开头进行判断,直至打破循环才会执行下面的内容
//如果大括号的内容没有对判断内容做出更改,那么就会陷入死循环
{
i++;
}
printf("i=8");
7,函数的建立和调用
函数分为两种,一种是自带的函数,称为库函数,如printf和scanf函数等
第二种是自定义函数,自己对这个函数的功能进行描述,然后进行调用
#include <stdio.h>
int Add(int x,int y)
{
int z=x+y;
return z;
}
int main()
{
int a=1;
int b=2;
sum=Add(a,b);//Add(a,b)=a+b
printf("sum=%d",sum);
}
//通过自己创建函数可以简化复杂代码的书写
8,数组的定义
同时同时里还有一个叫下标的东西,通过下标可实现对字符串里的元素的精准引用,字符串中的下标都是由0开始
数组名[下标]
int aeel[6]={1,2,3,4,5,6};//int是对数字里面元素类型的定义,6是数组中元素个数
//数组的定义和前面的字符串定义的第二种方式有些类似,只是字符串时里面的元素都是字符
char arrl[]="abc";
printf("%c\n",arrl[0]);//输出结果为a
printf("%c\n",arrl[1]);//输出结果为b
//数组中的每一个元素都具有一个唯一的下标
//当要引用某个元素时,只需要通过 数组名[引用元素的下标] 这种方式引用即可
注:
输出十进制整型 | %d |
输出字符型 | %c |
输出浮点型(单精度) | %f |
输出浮点型(双精度) | %lf |