初识c语言(一)

简介: 初识c语言(一)

前言:

本篇文章只是简单的介绍了一下C语言,包括什么是c语言,如何写第一个c程序,数据类型,变量和常量,字符串,转义字符,选择语句,循环语句等一些入门知识。


一:什么是c语言?

1.1:什么是计算机编程语言?

c语言是一种计算机编程语言。那么,很多小伙伴可能又要问了:“那计算机编程语言又是什呢?”别急,听我慢慢来告诉你。我们人和人之间的交流需要通过语言,于是世界上就诞生了许多种人们用来交流的语言,比如汉语、英语、法语等等。那么人们发明计算机编程语言也一定是为了用来交流的。说到这里,想必许多聪明的小伙伴已经猜出来了什么是计算机编程语言了。没错,计算机编程语言就是人们用来和计算机交流的一种语言。你想想,一个老外,假如他只会英语,那你用汉语和他交流他一定是听不懂的。计算机也一样,它只能听得懂计算机编程语言,想要和计算机交流,那我们就必须得用计算机编程语言。当前人们发明了成千上万种计算机语言,常见的有:C,C++,Java,Python等等。

1.2:C语言的应用场景

广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超 级电脑等作业平台。

1.3:C语言的小历史

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8 日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标 准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉 字编程。

1.4:C语言的编译器

主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。其中Clang由苹果公司研发,GCC主要应用在Linux平台上,我们比较常用的是MSVC,VS家族就和它有着密不可分的联系。这里多说一点,向我自己比较常用的就是vs2019,实际上是一个集成开发环境,它集成了多种功能,比如编辑器(用来写代码的)、编译器、链接器、调试器等。

二:如何写第一个C语言程序?

第一步:创建一个项目

我们需要准备一个上面提到过的集成开发环境,这里以vs2019为例。首先我们需要用vs2019来创建一个项目,具体步骤如下图:

打开vs2019就会出现下面这张图,我们选择“创建新项目”

ae39d855c8fa4c8a863c40ea4a527591.png

接着会出现下面这个界面,这里注意,虽然我们要写的是C语言代码,但是这里选择"C++"就可以,然后选择"空项目",这两项选择完以后,点击下一步。

e3dc9f9ec89e4b9faae08cbddf91639e.png

接着会出现这个界面。大家切记!!!项目名称一定要取一个有意义的,千万不要随便写,还要尽量避免中文。一般这个项目名要起到提示我们的作用,即使我们在很久以后看见这个项目名称,也能见其名知其意,很快想起来里面存的是什么代码。位置也不要用系统默认的存储地址,这样很不方便我们以后查找自己之前写过的代码,我们可以建一个专门的文件夹,点击“位置”后面的三个小点,选中我们建立的这个文件夹,这样一来,我们写的代码就会被存进这个文件夹,后面找起来会方便很多。

40f251d9c1814a10b1f2d3dcb8825361.png

这样一来,我们的第一步创建一个项目就顺利完成啦。

第二步:创建源文件

选择源文件

3eefba1a744848268d7676c521266c46.png

右击鼠标,然后选择“添加”->“新建项”

8ab9dccc93f1416baa13e9f1713144d2.png

接着出现下图,我们选择“C++”文件(写C或者是C++都选他就可以),然后取一个名称以.c为后缀,如果是C++程序,则以.cpp为后缀。


ced1b16d510b4bcbb6a20c20f77dcb63.png

到此,我们的第二步创建源文件也已经大功告成。

第三步:写代码

终于到了最激动人心的时候了,我们可以开始写代码了。

int main()
{
  return 0;
}

这段代码就是C代码的基础构架,这里需要提醒几点:

1、main叫做主函数

2、主函数是程序的入口

3、C语言代码中必须有主函数

4、但是有且仅有一个主函数

5、一个工程(项目)中可以有多个.c文件,但是多个.c文件中只能有一个main函数

#include <stdio.h> //包含输入,输出函数的头文件
int main()
{
  printf("hello word");  //printf是专门用来在屏幕上打印数据的,是C语言标准库中提供的一个库函数
  return 0;
}

此段代码的运行结果是:

c5b00a8ad9ea4357b197c07917313395.png

除了上面介绍的主函数写法外,主函数还有其他的几种写法,代码如下:

int main(int argc, char* argv[])
{
     return 0;
}
int main(void)//   void写到这里表示main函数不需要参数
{
  return 0;
}
void main()
{
  printf("hehe\n");
}

值得注意的是,最后一种方法已经非常老套了,几乎没有什么人用了


到这里,经过上面的三个步骤,我们已经能够写一个非常简单的C语言程序了

三:数据类型

在日常生活中,我们会用到整数,小数,字母等等。在 C 语言中,它们属于不同类型的量,数据类型就是用于声明不同类型的变量或函数的一个系统。变量的类型决定了变量存储占用的空间。下面是一些常见的数据类型:

char        //字符数据类型
short       //短整型
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数

在vs2019中,这些不同的类型,系统分配给他们的存储空间是不同的,我们可以通过sizeof函数测得,具体情况如下:


094d9cadc8a64522bd1b6fd005e125a1.png

需要注意的是:sizeof测得的数字单位是字节(Byte)。 它是是计算机信息技术用于计量存储容量的一种计量单位。这样的计量单位还有(按照从小到大的顺序排):bit、Byte、KB、MB、GB、TB、PB。他们的换算关系是:1Byte=8bit,1KB=1024Byte,1MB=1024KB,1GB=1024MB,1TB=1024GB。看了上图代码,可能会有同学产生疑问:为什么长整型long和整型int分配到的字节数都是4?这是因为C语言中仅要求了长整型的字节不能小于整型的字节就行,可以等于。

不同的数据类型还对应着不同的格式输出符,如下:

char       %c //字符数据类型
short      %d//短整型
int        %d//整形
long       %d//长整型
long long  %d//更长的整形
float      %f//单精度浮点数
double     %lf//双精度浮点数

四:变量、常量

生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)。有些值是可变的(比如:年龄,体重,薪资)。 不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。

4.1:定义变量的方法

int age = 150;
float weight = 45.5f; //此时是float型,如果没有f则是double型
char ch = 'w';

值得注意的是,我们在创建变量的同时需要给一个初始值!

int a;    //这不是好习惯
int a=0;  //这才是正确做法

4.2:变量的命名

  • 只能由字母(包括大写和小写)、数字、下划线(_)组成。
  • 不能以数字开头
  • 变量名不能用关键字
  • 长度不能超过63个字符
  • 区分大小写
int A=0;
int a=1;//这里定义了两个不同的变量A=0和a=1

4.3:变量的分类

  • 局部变量
  • 全局变量
int a = 10;//全局变量
int main()
{
  int b = 20;//局部变量
  return 0;
}
int c = 100;//全局变量

上面代码中的,a和c,都是一个全局变量,可以看出来他们都有一个共同的特点——都在主函数外面。b是一个局部变量,他在主函数里面。区分局部变量和全局变量的详细方法就不在这里赘述了,随着进一步的学习,我会分享给大家。

int a = 1;
int main()
{
  int a = 0;
  printf("%d", a);
  return 0;
}

大家看下上面这段代码,可以发现在这段代码中,主函数的里面和外面都定义了变量a,这时我们可能就会疑惑了,此时的a到底是多少呢?是1还是0呢?先卖个关子,大家可以先猜一下。别急,我们来实践出真知,请看此段代码的运行结果:

36b6d2c628a24e12aa019b46e63c168a.png


运行结果是0,你有没有猜对呢。由此可见,当局部变量和全局变量名字冲突的时,局部变量优先。但这里还是要提醒大家,尽量避免冲突。


下面给大家展示一下变量的使用

#include <stdio.h>
int main()
{
    int num1 = 0;
    int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0;
}

这段代码希望实现的是,用户从键盘上输入两个数字后得到这两个数字的和。这里的scanf是一个库函数可以从键盘接收数据。这里定义了三个变量,分别是num1、num2、sum,num1和num2分别用来储存从键盘上输入的两个数子,sum则是用来储存这两个数字的和。在从键盘上输入数字时需要注意两个数字之间要用空格隔开,如下图输入框中1和2之间有一个空格。

4547759160cd4607b4593cb7c3012b5e.png

代码的运行结果是:sum=3。


2d8bf7b1b21e400daa219b705e4fc7b8.png


目录
相关文章
|
设计模式 前端开发 Java
SpringMvc框架入门使用(详细教程)
SpringMvc框架入门使用(详细教程)
425 0
|
存储 运维 安全
Snowflake 与传统数据仓库相比有哪些优势?
Snowflake 与传统数据仓库相比有哪些优势?
656 52
|
8月前
|
数据采集 Web App开发 文字识别
Python爬虫多次请求后被要求验证码的应对策略
Python爬虫多次请求后被要求验证码的应对策略
|
12月前
|
存储 NoSQL 算法
【C语言】《C语言基础指南!》- 史上最全!
通过上述内容,你可以对 C语言 的基础知识有一个全面的了解。包括程序结构、数据类型、变量和常量、控制结构、函数、数组和字符串、结构体和联合、枚举和联合、预处理器指令、动态内存分配、文件操作、错误处理、编译器选项、调试和优化、C语言的标准库、编程技巧以及编程习惯等方面的详细讲解。希望这些内容能帮助你更好地理解和使用 C语言。
3050 5
|
机器学习/深度学习 搜索推荐 人机交互
智能语音交互技术的突破与未来展望###
【10月更文挑战第27天】 本文聚焦于智能语音交互技术的最新进展,探讨了其从早期简单命令识别到如今复杂语境理解与多轮对话能力的跨越式发展。通过深入分析当前技术瓶颈、创新解决方案及未来趋势,本文旨在为读者描绘一幅智能语音技术引领人机交互新纪元的蓝图。 ###
652 0
|
数据处理 Python
Python数据转换:从Pandas到NumPy转换
Python数据转换:从Pandas到NumPy转换
347 0
|
数据采集
代理IP是按照流量计费还是数量计费好?
在选择代理IP服务提供商时,一项重要的考虑因素就是计费方式。流量计费和数量计费,具体该如何进行选择呢?
|
JSON 监控 安全
在Linux中,如何使用Suricata进行实时网络威胁检测?
在Linux中,如何使用Suricata进行实时网络威胁检测?
|
JavaScript
【vue】无法使用 JSX,除非提供了 “--jsx“ 标志
【vue】无法使用 JSX,除非提供了 “--jsx“ 标志
224 0
【vue】无法使用 JSX,除非提供了 “--jsx“ 标志
|
C语言
Qt5项目开发中,打包生成单个EXE程序
Qt5项目开发中,打包生成单个EXE程序
1584 0