小白必看-C语言初了解(上)
初始C语言
1.c语言标准规定的long long 长度
sizeof(long long) >=sizeof(long) >= sizeof(int)
2.实型 就是浮点型
3.计算机中的单位
bit:比特位 byte: 字节 1byte = 8bit kb = 1024byte mb = 1024 kb gb = 1024mb tb = 1024 gb pb = 1024 tb
4.一个工程里有且只有一个main函数
多文件情况下也是一样
5.局部变量和全局变量
局部变量 - 在大括号(代码块)内部定义的变量就是局部变量
全局变量 - 在大括号外部定义的变量就是全局变量
作用域
局部变量的作用域:局部变量所在的局部范围
全局变量的作用域:整个工程都可以使用
生命周期
1.程序的生命周期其实和main函数的生命周期一样
2.局部变量的生命周期:进入局部变量所在的范围开始,出局部变量范围生命周期结束
3.全局变量的生命周期:程序的生命周期
6.字面常量
直接写出来的值
如: 3.14
a 7.const修饰的常变量
一个变量不能改变就说明具有常属性 ,但仍是变量,是常变量
例子:
int n = 100;
int arr[n] ={0}; //错误,[]内的必需为常数 ,写成变量是变长数组,而C99才支持变长数组的概念
const int n = 100; //n不是常量,n只是具有常属性,不能被修改而已
int arr[n] = {0}; //错误, 8.#define定义的标识符常量
通过define定义出来的就是真的常量
注意:#define定义后面不跟分号
#define Max 100
int main()
{
int a =Max;
int arr[Max] = {0}; //正确,因为#define定义出来的Max是常量
printf("%d\n",a);
Max = 200; //错误 Max为常量,不能被修改
return 0;
} 9.枚举常量
生活中有些东西可以一一列举
如:性别:男,女,保密 三元色:红绿蓝
enum Sex //enum Sex 是枚举类型
{
//枚举的可能取值--枚举常量,可以被赋值,否则第一个数从0开始,数值依次往下+1
MALE,
FEMALE,
SECRET
}; //注意要有分号
注意:枚举常量后面跟的是逗号 不是分号
最后一个枚举常量后面可以不跟逗号,其余要有逗号 enum Sex
{
MALE,
FEMALE,
SECRET
};
int main()
{
enum Sex s = SECRET; //s是枚举变量,值是SECRET对应的值
s = 10; //正确,s是变量,可以更改s的值,
// MALE = 4; //ERR 因为MALE是常量,不能被修改
//若枚举常量不赋值,默认从0开始,值往下+1
printf("%d\n", MALE); //0
printf("%d\n", FEMALE); //1
printf("%d\n", SECRET); //2
return 0;
} enum Sex
{
MALE=3,
FEMALE=7,
SECRET
};
int main()
{
printf("%d\n", MALE); //3
printf("%d\n", FEMALE); //7
printf("%d\n", SECRET); //8 //SECRET未被赋值,值顺着FEMALE往下+1
return 0;
} 10.关于变长数组
C99中的概念
编译器一定要支持C99标准,否则运行不了
变长数组不可以初始化
//c99
int n = 10;
int arr[n] = {0}; //err 变长数组不可以初始化
int arr[n]; //正确 11.字符串
字符串末尾默认放\0 ,

对于数组而言,未初始化部分自动放\0

%s打印时,遇到\0停止。
arr的只有6个空间,放不下\0 越界访问遇到\0才停止
所以要特别注意\0的问题,防止越界

对于arr数组,是不包含\0的,strlen求字符串长度,遇到\0才停止,所以越界访问了!
strlen是库函数,求字符串长度,\0是字符串的结束标志,不算进长度
问:数组acX的长度比acY的长还是短?
char acX[] = "abcdef"
char acY []= {'a','b','c','d','e','f'} ->长度:acX>acY 因为问的是数组的长度,不是字符串的长度,不能按strlen的方式算。
acX比acY多放进去\0,所以acX长度比acY长
#C语言#
查看9道真题和解析