视频中使用scanf函数会有一个警告,显示其是不安全的(VS code没有这个警告),原因及解决方法如下:
scanf是C语言提供的;
scanf_s不是标准C语言提供的,是编译器提供的,不具有跨平台性/可移植性。
scanf
strcpy
strlen
strcat
均为不安全的,用 #define _CRY_SECURE_NO_WARNINGS 1屏蔽(加在源文件的第一行)
常量:字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量
字符串+转义字符+注释
字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容。
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "abc";
char arr2[] ={'a','b','c'};
printf("%d\n", strlen(arr1)); // a b c \0
printf("%d\n", strlen(arr2)); // a b c xxxxx 随机值
return 0;
}
\t 水平制表符
\? 在书写连续多个问号时使用,防止被解析为三字母词(??+)-->)
\‘ 用于表示字符常量'
\'' 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止它被解释为一个转义序列符
\ddd 表示1~3个八进制的数字,如 \32 表示2两个8进制数字,即26(10)
\xdd 表示2个十六进制数字,如 \x30 0
#include<stdio.h>
#include<string.h>
int main()
{
printf("%d\n",strlen("c:\test\32\test.c"));
//\32 -- 32是2个8进制数字
//32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
//
return 0;
}
结果为:13(\t为一个字符),\32作为8进制代表的十进制数字,作为ASCII码值,对应的字符
#include<stdio.h>
int main()
{
printf("c:\test\628\test.c");
return 0;
}
结果:c: est28 est.c
注释:主要用在比较难懂的地方;
Mac注释快捷键:command+/
循环语句:
#include<stdio.h>
#include<string.h>
int main()
{
int line = 0;
printf("hello\n");
while(line<20)
{
printf("敲一行代码:%d\n",line);
line++;
}
if(line>=20)
printf("ok\n");
return 0;
}
函数:z = x + y
自定义函数、库函数;
#include<stdio.h>
int Add(int x, int y)
{
int z = x+y;
return z;
}
int main()
{
int num1 = 10;
int num2 = 20;
int sum = 0;
sum = Add(num1, num2);
printf("sum = %d\n",sum);
return 0;
}
数组:一组相同类型元素的集合;
#include<stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //定义一个存放10个整数数字的数组
printf("%d\n",arr[4]);
int i = 0;
//打印整个集合
while(i<10)
{
printf("%d ", arr[i]);
i++;
}
// char ch[20];
// float arr2[5];
return 0;
}