什么是C语言
人与人之间的沟通需要语言,而人与计算机之间沟通也需要语言,计算机只能识别这种由0和1组成的二进制,所以最开始人与计算机是用二进制构成的机器语言沟通的,但是由于其复杂,人们便用符号来定义二进制而形成不同的功能,由这些不同意义的符号组成的计算机语言称为汇编语言,后来由于汇编语言的不通用而被淘汰掉,就出现了现在的高级语言,例如面对对象的C++和Java,还有面对过程的C语言,这些都为计算机的高级语言,都是人与计算机沟通的语言。
C语言在发展过程中形成了不少的标准,例如C99标准、C11标准等,C11标准是C语言的最新标准。
C语言的编译器也有很多,主要有Clang、GCC、WIN-TC、SUBMILE、MSVC、Turbo C等,其中我用的是MSVC也就是Visual studio即人们常说的VS。
第一个C语言程序
写一个C语言程序,首先要创建一个工程,创建了工程之后才能创建文件并写上代码形成程序,那么如何创建一个C语言工程呢?
下面我将以WIN10系统VS2010版本为例,具体说一说如何给C语言创建一个工程。
打开VS:
打开之后就进入了如下页面:
创建工程:
创建之后就进入了如下页面:
创建好工程之后我们就开始要创建文件了,在C语言中,有两种文件,一种是头文件(.h文件)还有一种是源文件(.c文件)
我们是在源文件中写代码。那么如何创建源文件嘞?
创建源文件
之后进入如下界面:
再进行如下步骤来创建源文件:
创建好之后就是如下界面:
写C语言程序
创建好了文件,我们就可以写上自己的代码了
C语言的基本构架如下:
int main()
{
return 0;
}
我们来输出一个“Hello”
int main()
{
printf("Hello\n");
return 0;
}
由于printf输出函数是C语言库中自带的函数,不是我们自己,我们使用别人的东西是需要和C语言库打一声招呼的:用如下方式打招呼:
#include
stdio中std--standard标准,i--intput输入,o--output输出,所以stdio是C语言的标准输入输出文件。
在打一声招呼后需要使用输出函数后,printf函数才可以正常使用。
即输出“Hello”的完整程序如下:
#include
int main()
{
printf("Hello\n");//\n是转义字符,相当于“回车键(Enter键)”
return 0;
}
在VS中键入上述程序,按Ctrl+(fn)+f5运行程序,结果是我的运行结果窗口却闪退了。。。黑人问号,查询网上资料得到了一种解决运行窗口闪退的方法。
解决运行窗口闪退
进行如下步骤即可解决运行窗口闪退:
运行窗口闪退问题解决了,我们就可以得到如下运行结果:
成功的在屏幕上输出了“Hello”
当然,这只是我的第一个C语言程序,输出的是“Hello”也可以输出其他的嘛,可以用printf函数来输出。
数据类型
我们生活中的数据有整数,有小数,还有英文,同样C语言中也将数据分为了很多种,例如:int型(整型数据),short (int)型(短整型),long (int)型(长整型),long long (int)型(长长整型),float型(浮点型),double型(双精度浮点型),char型(字符型)
数据类型的长度
计算机所占空间大小最基本的单位是bit,一个bit(比特)就是存储一个0或者1,而一般描述计算机储存位置大小用Byte作为单位。
下面我们来写一个程序看看各种类型数据的长度(所占空间大小)是多少
#include
int main()
{
int i;
short s;
long l;
long long ll;
float f;
double d;
char ch;
printf("整型数据的长度为:%d\n",sizeof(i));//%d输出整型数据
printf("短整型数据的长度为:%d\n",sizeof(s));
printf("长整型数据的长度为:%d\n",sizeof(l));
printf("长长整型数据的长度为:%d\n",sizeof(ll));
printf("浮点型数据的长度为:%d\n",sizeof(f));
printf("双精度浮点型数据的长度为:%d\n",sizeof(d));
printf("字符型数据的长度为:%d\n",sizeof(ch));
return 0;
}
运行结果如下:
在写程序的过程中,我们可以根据需要选择不同类型的数据类型。
变量
在生活中,像身高、体重、年龄等都是可以变的,在C语言中将这些可以变化的量称之为变量。
定义变量
在C语言中变量是需要定义的,可以直接定义变量并赋值,输出变量用printf函数,输入用scanf函数。
例如,下面写一个程序:定义一个整型变量a、b,并给a赋值为3,b为键盘输入,输出变量a、b。
#include
int main()
{
int a=3;
int b;
printf("请输入b的值:\n");
scanf("%d",&b);//scanf是输入函数,和printf一样是C语言库中自带的函数,&为取地址
printf("a的值为%d\n",a);//%d输出整型数据
printf("b的值为%d\n",b);
return 0;
}
输出结果如下:
变量的分类
变量分为全局变量和局部变量
全局变量是定义在块之外的变量,而局部变量是定义在块里面的变量。
例如:
#include
int a=1;//a为全局变量
int main()
{
int b=2;//b为局部变量
return 0;
}
在上述程序中,a为函数体之外的变量,则为全局变量,b为函数体里面的变量,则为局部变量。
变量的作用域和生命周期
在C语言中变量是有一定的作用域和生命周期的。
例如:
#include
int a=1;//全局变量
int b=2;//全局变量
int main()
{
printf("a1的值为:%d",a);
{
int a=3;//局部变量
printf("a2的值为:%d",a);
printf("b的值为:%d",b);
}
return 0;
}
输出结果如下:
在上述程序中,第一个a为全局变量,第二个a为局部变量,b为全局变量,运行后,全局变量全程都可以使用,都可以输出,(a1、b)当局部变量和全局变量同名时,局部变量优先使用(a1、a2)
局部变量的作用域是:变量所在的局部范围,生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
全局变量的作用域是:整个工程,全局变量的作用周期是:整个程序的生命周期。