一.第一个C程序
#incluude<stdio.h>
int main()
{
printf("Hello world!");
return 0;
}
相信各位在刚接触C语言的时候都见过这段代码,现在也以它为开头,一起来掀开C语言的神秘面纱!
一个程序的入口是main函数,而一个工程有且只有一个main函数。
这里提到的工程并不是指main函数所在的源文件,一个真正的程序往往包含多项功能,而实现这每一个功能就有可能会有上万行代码,如果我们将这些代码都放到一个源文件中,那将会让人崩溃。这时候,我们只需要将这些代码分门别类地放到多个源文件中,就能让我们的代码更加清晰明了,这就是一个工程的构建。
二.数据类型
C语言为我们提供了丰富的数据类型,我们可以根据需要的数据范围和类型进行合理选择。
让我们一起来看看每种类型的大小(字节):
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char)); //字符数据类型 1字节
printf("%d\n", sizeof(short)); //短整型 2字节
printf("%d\n", sizeof(int)); //整型 4字节
printf("%d\n", sizeof(long)); //长整型 4字节
printf("%d\n", sizeof(long long)); //更长的整型 8字节
printf("%d\n", sizeof(float)); //单精度浮点数 4字节
printf("%d\n", sizeof(double)); //双精度浮点数 8字节
return 0;
}
注:以上类型大小是在VS上运行的结果。
三.常量和变量
在C语言中,不变的值我们用常量表示;可变的值用变量表示。
1.变量的定义与命名
int age=56;
char c='z';
float score=90.5;
- 变量只能由字母、数字和下划线组成。
- 不能以数字开头。
- 长度不能超过63个字符。
- 变量名不能使用关键字。
- 变量名中区分大小写。
2.变量的分类
- 局部变量:在一个函数内部或复合语句内部定义的变量(也是常说的在{ }以内定义的变量)。
- 全局变量:在所有函数外部定义的变量。
#include<stdio.h>
int apple=7;//全局变量
void print()
{
printf("%d",apple);
}
int main()
{
int apple=10;//局部变量
printf("%d",apple); //输出结果为10
print();//打印7
return 0;
}
总结:
在局部变量在定义时可以和全局变量同名时
- 局部变量优先使用。
- 如果在局部变量所在的局部范围内使用局部变量,需要对局部变量初始化或赋值。因为局部范围内定义局部变量后,全局变量在此范围失效。
- 修改局部变量的值,对全局变量无影响。
可理解为,此时局部变量和全局变量只是名字相同的两个不同变量。
3.变量的作用域和生命周期
作用域:
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
生命周期:
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
4.常量
1.字面常量
直接输入到程序中的值,如int a=16; 16就是一个字面常量。
2.const修饰的常变量
const int a=15;
a=16;//error 被const修饰后,a的值不能被改变,这里会报错
注:常变量并不等同于常量,在定义数组大小时,不能是const修饰的常变量。
const int a=5;
int arr[a]={0};//error const修饰a,只是在语法层面限制a不能改变,而a的本质还是变量
3.#define定义的标识符常量
定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。
#include<stdio.h>
#define MAX 100 //在预编译时,会直接把程序中的MAX替换为100
int main()
{
printf("%d",MAX);//输出100
}
4.枚举常量
#include<stdio.h>
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
printf("%d %d %d",MALE,FEMALE,SECRET);//0 1 2枚举常量的默认是从0开始,依次向下递增1的
return 0;
}
#include<stdio.h>
enum Sex
{
MALE=3,
FAMALE,
SECREAT=6
};
int main()
{
printf("%d %d %d", MALE, FAMALE, SECREAT);//3 4 6
return 0;
}
注意:在定义枚举常量时,最后的分号不要忘记。
结语:
后期会持续更新C语言相关内容....