目录
一、VS2019配置与C程序——经典的Hello World
一、VS2019配置与C程序——经典的Hello World
1、VS2019配置
为了让我们写的代码跑起来,我们需要一个编译器并配置好运行环境,我这里用的是VS2019社区版,如果你也想用,可以点击下方链接来下载感谢您下载 Visual Studio - Visual Studiohttps://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=17 安装好之后,需要配置一下环境,只需勾选C++桌面开发即可
环境配置好以后,打开编译器,(颜色等配置根据个人喜好来选择即可)。选择创建新项目,之后可按下图操作
这样,我们就创建好了一个项目。然后,继续创建源文件
这样,我们就创建好了一个项目,并在其下创建了一个源文件,一个程序的实现通常都是在一个项目中创建多个源文件、头文件等来实现的。
2、最经典第一个C程序
下面,我们来写第一个C语言程序
第一个最经典的C语言程序非打印Hello World莫属,实现该程序的代码如下:
#include<stdio.h>
int main()
{
printf("Hello World!");
getchar();
return 0;
}
将其运行,我们可以看到这样一个画面
下面,我们来解释一下这段代码
#include<stdio.h>
首先,程序在形成之前,会对#include <stdio.h>这一行的代码进行处理
这行代码的意思是,将stdio.h文件中的所有内容全部包含到当前的文件中。stdio.h是一个标准输入输出的头文件,里面包含了诸多C语言的库函数。关于这一点,在后续的章节中会有深入的讲解,这里只做简单的介绍
int main()
然后,一个C程序的执行都是要从主函数,即从main函数开始,主函数在一个项目中必须有且只有一个。
一个函数实现的语法是:
返回值类型 函数名(参数)
{
//函数功能;
}
而在这一行代码中,int表示该函数的返回值类型是整形(integer,即整数),其后的main为函数名,()中为空表示函数无参数。
printf("Hello World!");
getchar();
return 0;
printf是包含于stdio.h文件的诸多库函数中的一个,其作用是将其中内容打印到显示器上,在本例中即打印Hello World。
getchar() 此行代码在此仅用作使程序暂停,使我们能够观察到打印的内容
return 0 表示这个函数最后返回0,(主函数一般都要返回0)
二、C语言中的数据类型
数据类型分为内置数据类型和自定义数据类型
C语言本身为我们提供了诸多内置数据类型,如
不同的数据类型所占的内存空间大小不同,能够表达的数值范围也不同
关于空间大小单位,由小到大依次为
Bit—Byte(字节)—KB—MB—GB—TB
8bit为1字节,1024字节为1kb,1024kb为1mb...
而存在这么多的类型,其实是为了更加丰富的表达生活中的各种数值
那么这些数据类型要怎么使用呢,我们往下看
三、常量与变量
常量,即不变量,如圆周率、人的血型等,其值不可更改
变量,即可变量,如年龄,体重等,其值是可更改的
1、变量的意义
在一个程序中,数据是存储于内存中的,但我们不知道哪块内存区域存储了什么样的数据。通过创建变量,我们可以在内存中开辟一块区域(具体位置通常由编译器决定),来存放我们想要的数据,而当我们想修改数据时,可以通过这一变量找到开辟出的内存,对里面的数据进行修改
2、定义变量及修改其值
在C语言中,定义一个变量的语法为:
数据类型 变量名;
如:
int val;
double weight = 1.0;
char ch = 'a';
weight = 2.0 // 修改weight中的值
在这里,表达式左边的val、weight、ch都是变量名称,名称可以由用户自己定义。weight、ch两个变量都已经进行了初始化(即赋初始值),而val没有,在这种情况下,编译器会为其赋上一个随机值(不同编译器赋值方法不同)
建议在定义变量的同时对其进行初始化
3、变量的分类
变量分为局部变量与全局变量
3.1、局部变量与全局变量的区别
1、二者的定义位置与默认赋值方法不同
//全局变量,创建于函数体之外
int g_val = 1000;
//未初始化的全局变量,编译器默认对其赋值为1
int m;
int main()
{
//局部变量,创建于函数体之内
int value = 100;
//未初始化的局部变量,编译器默认对其赋随机值
int i;
return 0;
}
2、二者作用域与生命周期不同
作用域是值变量可以被使用的代码范围,生命周期是指变量从创建到销毁的这一过程,函数内的局部变量在函数结束后销毁。
#include<stdio.h>
int g_val; //全局变量g_val,其作用域为整个项目,生命周期从程序运行时开始到程序结束时结束
int main()
{
{
//变量i的作用域为离他最近的{}包含的代码块内
int i = 0;
}
//此时会报错,因为此处超出了i的作用域,变量i不可用,但变量i的生命周期没有结束
printf("%d", i);
//变量j的作用域为整个main函数
int j = 0;
return 0;
}
3.2全局变量与局部变量的注意事项
在局部变量的作用域内,不允许对这个变量重定义,即该变量名只能用一次
而全局变量在整个工程中不允许重定义
int g = 0;
int g = 2;//错误,全局变量不允许重定义,即使在其他文件中也不行
int main()
{
int i = 0;
int i = 1; //错误,不允许在局部变量作用域内对其重定义
}
但是由于全局变量与局部变量的作用域不同,允许定义的局部变量允许与全局变量同名
int val = 0;
int main()
{
int val = 1;
printf("%d", val); //会打印出数字 1
}
而当定义的局部变量与全局变量同名时,优先使用局部变量
4、变量的使用
既然我们已经可以创建变量,变量又该如何使用呢,下面以求和为例进行简单阐述
#include <stdio.h>
int main()
{
int n1 = 0;
int n2 = 0;
int sum = 0;
printf("请输入要求和的两个数字");
scanf("%d%d", &n1, &n2);
sum = n1 + n2;
printf("两数和为:%d", sum);
return 0;
}
首先,我们创建了n1,n2,sum三个变量并对其初始化
然后,用scanf函数对n1和n2进行赋值,scanf函数是包含于stdio.h的一种,用以读取从键盘上输入的数据,并赋值给相应的变量。前面的%d是指要输入整形来对变量赋值,其总个数取决于后面要赋值的变量数。&n1,&n2是指将第一个输入的值赋给n1,第二个输入的值赋给n2,&n1、&n2的书写先后顺序决定了二者的赋值先后顺序
之后,计算二者之和并赋值给sum
最后打印结果,printf中的%d表示要打印一个整形,sum表示要打印的具体整形数字,若要打印多个整形,写法与scanf基本相同,如:
int i = 0;
int j = 1;
printf("i = %d j = %d", i, j);
5、常量
C语言中的常量大体有字面常量、const修饰的常变量、#define定义的标识符、枚举常量
//#define定义的标识符
//这里将MAX标识符定义为1000,之后编译器编译时,遇到MAX就会替换成数字1000
#define MAX 1000
//枚举常量(当前仅需简单了解即可)
enum person
{
man,
woman
};
int main()
{
// 字面常量
1;
3.1334;
"abc";
//const修饰的常变量
const int i = 0;
//此时i中的数据不可被修改,但i本质仍未变量
i = 1;
}
如果您觉得不错,请点个赞吧