一些常见错误

1.scanf()函数因为不安全所以现在通常替换为scanf_s()。(因为scanf不管所定义的数组的长度 只要是输入都会容纳 所以不安全)
2.若输入字符超过定义范围需要适当调整。
3.若出现:
错误 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\lenovo\documents\visual studio 2013\projects\first.c\first.c\xzc.c 5 1 first.c
需要在#include前加#define _CRT_SECURE_NO_WARNINGS 1

scanf_s()函数

用法:

#include <stdio.h>

int main(){
int a;
char arr[5];
scanf_s("%d", &a);//此时需要加&(取地址符)
printf("%d", a);
scanf_s("%s", arr);//此时不需要加&因为是数组
printf("%s\n", arr);
return 0;
}

常量

#include <stdio.h>

int main(){
3;//字面常量 (1)
const int num=4;//常属性(不可改变) (2)
int n = 10;
int a[n]={0};//这样不行而int a[10]={0};才可以若const int n=10;也是不可以的 const int n;此时n还是变量但是具有常属性(3)
return 0;
}
#include <stdio.h>
#define MAX 10 //define定义的标识符常量 (4)
int main(){
int a[MAX]={0};//此时可以运行即MAX为纯纯常量
return 0;
}
枚举常量 ----enum(枚举关键字) (5)
表现形式:
enum Sex
{
MALE, //默认为0
FEMALE, 1
SECRET 2
};
//三个为枚举常量
使用:
enum Sex s = MALE;//定义s为MALE
int main(){
printf("%d", MALE); //结果为0
s = FEMALE; //数值可以更改但必须是枚举常量
return 0;
}

字符串

存入:
char arr[]="abc";
区分:
char arr[]="abc";//此时arr[]存放有四个元素分别是a b c 和 0
输出:abc
char ar[] = {'a', 'b', 'c'};//此时ar[]存放只有三个a b c
输出:abc烫烫烫烫乱码
char ar[] = {'a', 'b', 'c', 0或'\0'};//此时输出为abc
总结:
\0为字符串输出的结束标志且\0的值为0
char arr[] = "abc\0";//此时输出结果为abc
char arr[] = "ab\0c";//此时为ab

strlen()函数

用法:
strlen(arr);//显示字符串长度
注意:
使用前需要导入#include <string.h>
char arr[] = "avc";
char ar[] = {'a','d','w','s'};
printf("%d\n", strlen(arr));
printf("%d\n", strlen(ar));
\0不算字符串长度只是一个结束字符

转义字符

\
即+字母所得结果不是字母本意了转变了本来的意思
例如:
\n \t......
printf("c:\text\xzc\xzc.c");//此时输出为乱码

printf("c:\text\xzc\xzc.c");//此时就为正常路径了 \转义了\即 \为单个\的意思不与别人构成转义字符
一个转义字符\n的长度为1即printf("%d\n", strlen("abc\nc"));输出结果为5
总结:
一个字符串长度为出去\的所有字母或数字(\32为1个长度并不是\3和2两个)或标点的个数之和
\123为123的八进制
\x61为61的十六进制