内置类型:
char
short
int
long
long long
float
double
自定义类型:
结构体
枚举
联合
局部变量的作用域是局部变量所在的局部范围。
很多互联网公司在笔试环节都采用在线oj的形式,在线oj分为两类:
1.IO型
所有代码都是自己完成和实现,输入,计算,输出
2.接口型
只需要完成一个函数,假设其他需要的数据都是准备好的
0 数字0
'0' 字符0,ASCII码值是48
'\0' 字符,ASCII码值是0
EOF end of file,文件的结束标志,值是-1
字符串数组结束才要'\0',其他类型数组不需要
#include <stdio.h>
#include <string.h>
int main()
{
char arr[]={'a','b','c'};
printf("%d\n",strlen(arr));
return 0;
}
打印出来的长度并不是3,而是一个随机值,因为你不知道走到哪里才会碰到'\0'停止打印。
#include <stdio.h>
#include <string.h>
int main()
{
char arr[3]={'a','b','c'};
printf("%d\n",strlen(arr));
return 0;
}
虽然这个指定了数组大小,但结果还是一样
#include <stdio.h>
#include <string.h>
int main()
{
char arr[4]={'a','b','c'};
printf("%d\n",strlen(arr));
return 0;
}
不完全初始化,剩余的部分默认初始化为0
#include <stdio.h>
#include <string.h>
int main()
{
char arr[8]={'a','b','c'};
printf("%d\n",strlen(arr));
return 0;
}
C99标准之前,数组的大小都是用常量或者常量表达式来指定。
C99标准之后,支持了变长数组,这个时候允许数组的大小是变量,但是这种指定方式的数组是不能初始化的。
vs对C99中的一些语法支持不是很好,不支持变长数组。