其他分享
首页 > 其他分享> > C语言初阶第一篇:换我心,为你心,始知C语言 从C语言发展历程到变量常量保姆教学来喽

C语言初阶第一篇:换我心,为你心,始知C语言 从C语言发展历程到变量常量保姆教学来喽

作者:互联网

换我心,为你心,始知C语言
老铁们,我们新的一个系列要正式开始了,这个系列就是系统的讲述C语言,而前几篇文章会把C语言整体过一遍,之后我们才会渐渐深入。保证零基础也能看懂,那么废话不多说,我们开始吧!

文章目录

一、什么是C语言

下图是我们计算机语言的发展历程:
语言的发展
在C语言刚诞生的时候,并没有一个统一的标准,这造成了很多的困扰,非常的难以解决:
在这里插入图片描述
这里多介绍一点:
在这里插入图片描述
所以,综上所述,C语言就是一种基层开发工具,是更易于大众理解的与计算机交流的语言。

二、如何理解第一个C语言程序

在看程序之前,我们还需要做一件基础的事:理解数据类型

1、数据类型

首先我们需要理解字节是什么含义:
电脑一般有32位和64位两种区分,是计算机信息技术用于计量存储容量的一种计量单位。就像我们说一头牛、一只鸭一样。
一个字节有8个比特位,下面是换算的数据:

1字节(Byte)=8位(bit)
1KB( Kilobyte,千字节)=1024B
1MB( Megabyte,兆字节)=1024KB
1GB( Gigabyte,吉字节,千兆)=1024MB
1TB( Trillionbyte,万亿字节,太字节)=1024GB
1PB( Petabyte,千万亿字节,拍字节)=1024TB
1EB( Exabyte,百亿亿字节,艾字节)=1024PB
1ZB(Zettabyte,十万亿亿字节,泽字节)=1024EB
1YB( Yottabyte,一亿亿亿字节,尧字节)=1024ZB
在这里插入图片描述

之后我们再来看数据类型,就明白他们也是占用空间来存储数据的:

数据类型含义大小
char字符1字节
short短整型2字节
int字符4字节
long字符4字节
long long字符8字节
float字符4字节
double字符8字节

此处注意,C语言规定 sizeof(long) >= sizeof(int)(sizeof的计算结果用%d接收)
以上是计算机给出的类型,那么我们能不能自己定义一个类型?是可以的,实际上我们定义的变量就是自己的类型:
int price = 60;
这个时候我们就可以使用price来作为我们自己的数据类型。
那么C语言能否储存字符串?可以,我们使用字符数据类型的数组形式:
char[] = “abcdefg”;
这样就把每一个字母存储到了这个字符数组中
理解了数据类型之后,我们就可以来看一下我们自己书写的第一个C语言程序了:

2、怎么写一个C语言程序:

1、编译器VS2019
2、创建项目(名称不要汉语,且没有特殊字符)
3、创建源文件
4、写代码
5、编译+链接+运行 在VS中 ctrl+F5即可(如果不行,加上Fn)
创建源文件的时候,我们一般可以创建.c和.h文件。
在以后的分析项目里,我们就使用三个文件——一个.h,两个.c来完成需求,
其中一个.c文件用来书写函数定义,一个用来书写main函数(程序入口)
.h文件则负责函数的声明

今天我们就只简要的理解C语言:

//写C语言代码,首先要写出主函数main()
//printf是C语言提供的一个库函数,专门用来按照某种指定的格式来打印
//库函数的使用,得包含对应的头文件
#include<stdio.h>
//std 标准  i 输入  o 输出
int main()
{
	//主函数是程序的入口
	//一个程序里只能有一个主函数
	printf("hello world!\n");
	return 0;
}//主流写法
void main()
{
	printf("hello world!\n");
}//老式写法

下图是常见的main函数报错:
在这里插入图片描述
第一个:
错误 C2371 “main”: 重定义;不同的基类型
第二个:
错误 LNK2019 无法解析的外部符号 _main,函数 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中引用了该符号

三、变量、常量

生活中的一些值是不变的,比如身份证号、性别、圆周率等

也有很多可变的值,如:年龄、体重等

不变的值,C语言用常量表示,可变的值,C语言用变量表示

1、定义变量的方法

类型+名称+值
int age = 150;
float weight = 65.3;
变量分类:
1、全局变量
2、局部变量
那么如何理解局部变量和全局变量?
大括号里面的是局部变量,在所有括号外面的是全局变量
那么如果局部变量和全局变量有冲突怎么办?
系统会优先选择局部变量

此处插入一个小知识点,我们在使用VS的scanf函数时,会报这种错:
在这里插入图片描述
那么这里首先可以在项目的项目属性里找到这个:
在这里插入图片描述
把后面的参数删掉就可以了(不会报错,会有警告)。
或者在文件开头输入这个:

#define _CRT_SECURE_NO_WARNINGS 1

一般而言,我们不建议使用scanf_s , 因为这样书写只有VS编译器能够识别,就不具有跨平台性了。
但是,scanf确实是不安全的,比如我们书写一个字符数组,使用scanf来接受键入的值,它就不会关心越不越界的问题,越界了也写入数组,这就不安全了。

2、变量的作用域与声明周期

作用域(scope)是程序设计概念,通常来说,一段代码中所用到的名字,并不总是有效或可用的。限定这个名字可用性的代码范围就叫做这个名字的作用域。
简要的说,一个变量哪里可以使用,哪里就是它的作用域。

在其他文件也可以声明变量(全局),需要使用符号 extern
1、局部变量的作用域是变量所在的局部范围(一个大括号)
2、全局变量的作用域是真个工程
生命周期,指的是变量创建到变量销毁之间的一个时间段
1、局部变量的生命周期是:进入作用域的生命周期开始,出作用域的生命周期结束
2、全局变量的生命周期是:整个程序的生命周期

下面是一个例子:
在这里插入图片描述
这里的num,它的作用域就不能超出里面的大括号,一旦在外部使用了,这里同时也超出了它的生命周期,就会报错。

3、常量

C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下几种:
1、字面常量
20;
3.14;
‘a’ //字符常量
“abcde”//字符串常量
int a = 10;
char ch = ‘w’;
2、const 修饰的常变量
const是C语言的一个关键字
在这里插入图片描述
此处下面的num已经被const限制,就是不能再被修改了。
const在函数传参的时候,可以保护值不被修改(因为我们更多的可能是传地址,为了不破坏原有的数据,可以加上const限定

在定义数组时,我们也需要常量进行限制大小,如arr[10]。
在这里插入图片描述
但是此处再使用const也没有用,所以我们说,const等于是定义了一个常变量。
3、#define 定义的标识符常量
在这里插入图片描述
使用define定义的值来限制数组,是没有任何问题的。这说明define定义了一个常量(注意,define后面不加引号),
4、枚举常量
枚举,也就是列举 ——一一列举
性别:男,女,保密
三原色:红色,绿色,蓝色
星期:一、二、三、四、五、六、日
在这里插入图片描述

这里要注意,枚举定义的是常量,并且枚举类型之间用逗号隔开,同时,他们是有先后关系的,使用数字表示先后。

今天的分享也就到这里了,希望老铁们能喜欢。

标签:初阶,变量,始知,作用域,C语言,字节,main,常量
来源: https://blog.csdn.net/awaitxm/article/details/122614605