计算机语言
计算机语言是人与计算机之间通信的语言,由一些指令组成,包括数字,符号,语法等。 那什么是计算机语言🙌 计算机语言包括机器语言,汇编语言,高级语言
-
机器语言:这个货是能够被计算机直接识别的语言,是由二进制数0和1组成的一串指令集和,but这对于我们程序员来说,机器语言是不便于记忆和识别的 -
汇编语言:把不易理解的,记忆的机器语言按照对应关系转换成汇编指令,这些汇编语言是用英文字母和或符号串来代替机器语言,but这对于我们程序员来说还是挺难的,因为汇编语言依赖于硬件,即程序的移植性极差,我们在使用计算机时,需要我们去学习新的汇编指令,这对于我们是非常麻烦的 -
高级语言:便是我们现在使用的编程语言,易于理解,记忆和使用(真的是这样的吗🤷?♂?,为什么我学起来hai那么难🤷?♀?·······)
程序设计与算法
算法是程序设计的灵魂 什么是算法勒?
- 算法:字面意思:解决问题的方法与过程算法将要解决的实际问题和解决实际问题的计算机程序联合起来
最简单的C语言程序
我们直接代码开头
#include<stdio.h>
int main()
{
printf("你好,世界!\n");
return 0;
}
简单来说,一个C程序就是由若干头文件和函数组成
- #include <stdio.h>就是一条预处理命令,它的作用是通过C语言编译系统在对C程序编译之前做一些预处理操作
- 一个C程序只有一个主函数,即main函数。这个主函数C语言中唯一的入口
- 在main前面的是主函数的类型
- printf()是格式输出函数。在这里我们只需要记住它的功能就是在屏幕上输出指定的信息
- \n是转义字符中的换行符
- return是函数的返回值,根据函数类型的不同,返回值得类型也是不同的
其次我们要养成良好的书写习惯!!!!
因为你的代码并不只是要求能运行,还要美观易读。有可读性的代码才是有价值的代码,如果你写完代码,别人根本看不懂,甚至你自己都看不懂,那么这个代码就没法修改,如果程序需要升级或者要修改漏洞,效率就会很低!
程序解释——注释 C语言注释方法有两种:
我们需要记住 注释是写给程序员看的,不是写给电脑看的。
数据类型
C语言的基础知识包括关键字,标识符,常量,变量,数据类型,运算符
关键字与标识符
关键字
关键字:是指在编程语言里事先定义好,并被赋予了特殊含义的单词,也称作保留字,他们具有特殊的含义,不能被我们随意使用的字符,每一个关键字都有特殊的作用 特征:
. C语言中的关键字 (32个) auto、double、int、struct、break、long、 switch、else、case、enum、register、typedef、char、extern、return、union、construction、float、short、unsigned、continue、for、signed、void、default、goto、sizeof、volatile、do、if、while、static 最新版中多加了五个(restrict、inline、_Bool、_Complex、_Lmaginary)
这时候有人就会问,这么多我怎么记呀😣。你这不是为难我吗。 别急这些我们现在只需要了解一下,等后面遇到了,用到了,我们在理解和加深记忆和运用
标识符
标识符: 在我们的编程过程中,我们需要定义一些符号来标记一些数据或内容,有变量名,方法名,参数名,数组名等
C语言规定,
- 标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串
- 标识符不能以数字作为第一个字符
- 标识符不能是C语言中的关键字
- 注:
标识符的长度最好不要超过8位,
标识符是严格区分大小写的。例如name和Name 是两个不同的标识符。
标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。不然别的程序员看代码看不懂,想打人😡
常量与变量
常量
常量:在程序运行期间,固定不变的量。 常量的分类:
- 字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:“abc”、“2b”.
- 整数常量: (%d)整数类型的常量,直接写上的数字,没有小数点。例如:100。
- 浮点数常量:(%f)直接写上的数字,有小数点。例如:-2.5。
- 字符常量:(%c)凡是用单引号引起来的单个字符,叫做字符常量。例如:‘a’、‘中’。
- 布尔常量:只有两种取值。true、false。
- 空常量:null。代表没有任何数据
#define 标识符 常量值
#include<stdio.h>
#define MONEY 3000
int main()
{
printf("你的花呗额度为%d元\n",MONEY) ;
return 0;
}
你的花呗额度为3000
变量
变量:就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。使用变量之前必须先定义变量,要区分变量名和变量值是两个不同的概念。
变量定义的一般形式为:数据类型 变量名 多个类型相同的变量:数据类型 变量名, 变量名, 变量名…
接下来我们直接上代码。用代码说明
#include<stdio.h>
int main()
{
int love;
love=520;
int a,b,c,d;
a=1;
b=2;
c=3;
d=4;
printf("%d\n%d\n%d\n%d\n%d\n",love,a,b,c,d);
520
1
2
3
4
}
注意:在定义中不允许连续赋值,如int=a=b=c=d;这是不合法的
数据类型
数据类型用于声明不同类型的变量或者函数,而变量的类型决定了变量存储占用的空间以及存储模式 C语言中中的数据类型分为4种,分别是基本类型,构造类型,指针类型,空类型
基本类型
基本类型: 整型,字符型,浮点型 我这边只列出了我们经常要用的🐱?🏍🐱?🚀
数据类型 | 说明 | 字节 | 应用 | 例子 |
---|
char | 字符型 | 1 | 用于储存单个字符 | char sex=‘m’ | int | 整型 | 2 | 用于存储整数 | int height=170 | folat | 单精度浮点型 | 4 | 用于存储小数 | float price=12.5 | double | 双精度浮点型 | 8 | 用于存储位数更多的小数 | double pi=3.1415926 |
这里我们说一下格式化输出语句,这也是比较重要的 格式化输出语句,是将各种类型的数据按照格式化后的类型及指定位置,输出到计算机屏幕上,显示给我们
printf("输出个格式符",输出目标)
#include<stdio.h>
int main()
{
int a;
a=1;
printf("%d\n",a) ;
char b;
b='a';
printf("%c\n",b);
float c=3.14;
printf("%f\n",c);
printf("%s","你好世界");
printf("整数:%d 小数:%f 字符:%c",a,c,b);
return 0;
}
运行结果:
1
a
3.140000
你好世界
整数:1 小数:3.140000 字符:a
构造类型
C语言提供的基本数据类型(字符型,整型,浮点型)并不能够满足后面复杂程序的设计需求,因此 C语言允许用户根据自己的需求自定义数据类型,这些自定义的数据类型称为构造类型 构造类型:数组,枚举;共用体,结构体 1.数组 数组:是一组具有相同数据类型的变量集合,这些变量称为数组的元素,数组的类型由数组中存储的元素的类型决定
在定义数组时要指定数组类型和数组大小 int arr[5]; 定义一个int类型的数组,大小为5 char str[5]; 定义一个char类型的数组,大小为5 float ff[5]; 定义一个float类型的数组,大小为5
2.枚举类型 在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。
枚举类型:用于定义值可以被一 一列举的变量,具体格式如下:
enum 枚举名{标识符1=整型常量1,·······}
我们直接来看代码👩?🏫
#include <stdio.h>
#define Mon 1
#define Tues 2
#define Wed 3
#define Thurs 4
#define Fri 5
#define Sat 6
#define Sun 7
int main(){
int day;
scanf("%d", &day);
switch(day){
case Mon: puts("Monday"); break;
case Tues: puts("Tuesday"); break;
case Wed: puts("Wednesday"); break;
case Thurs: puts("Thursday"); break;
case Fri: puts("Friday"); break;
case Sat: puts("Saturday"); break;
case Sun: puts("Sunday"); break;
default: puts("Error!");
}
return 0;
}
运行结果:
5
Friday
但是副作用是宏名较多,代码松散,看起来总是有点不舒服,我们给他优化一下
int main(){
enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day;
这就叫做代码优化😂😂😂😂😂😂 这对于我们以后写项目的时候还是很有用的 3.共用体 共用体又叫联合体,它可以把不同数据类型的变量整合到一起。 共用体数据类型使用union关键字进行声明上面关键字找找,是不是用到了。这时候我们在记忆和理解这个关键字的用法 格式如下:
union 共用体类型名称
{
数据类型 成员名1;
数据类型 成员名2;
·········
}
上代码(*  ̄3)(ε ̄ *)
#include <stdio.h>
#include <string.h>
union Data
{
int i;
float f;
char str[20];
};
int main( )
{
union Data data;
data.i = 10;
data.f = 220.5;
strcpy( data.str, "C Programming");
printf( "data.i : %d\n", data.i);
printf( "data.f : %f\n", data.f);
printf( "data.str : %s\n", data.str);
return 0;
}
data.i : 1917853763
data.f : 4122360580327794860452759994368.000000
data.str : C Programming
为啊么只有最后一个值显示出来了,???????? 因为之后赋给变量的值占用了内存位置
定义了共用体变量之后,需要对共用体变量进行初始化,对公共体变量进行初始化时,只能对其中一个成员进行初始化。同一时间只能使用到一个成员
union 共用体类型名 共用体变量={其中一个成员的类型值}
少废话,上代码
#include <stdio.h>
#include <string.h>
union Data
{
int i;
float f;
char str[20];
};
int main( )
{
union Data data;
data.i = 5;
printf( "data.i : %d\n", data.i);
data.f = 250.2;
printf( "data.f : %f\n", data.f);
strcpy( data.str, "C Programming");
printf( "data.str : %s\n", data.str);
return 0;
}
data.i : 5
data.f : 250.200000
data.str : C Programming
理解理解理解了没有 结构体 在上面我们讲解了共用体,它是一组具有相同类型的数据的集合。在实际的编程过程中,我们需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为整数,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。
姓名 | 学号 | 年龄 | 学习小组 | 成绩 |
---|
char | int | int | int | float |
在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:
struct 结构体名{
结构体所包含的变量或数组
};
结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。 别废话,上代码🐱?🏍🐱?🏍🐱?🏍🐱?🏍
struct stu{
char *name;
int num;
int age;
int group;
float score;
};
这里stu 为结构体名,它包含了 5 个成员,分别是 name、num、age、group、score。结构体成员的定义方式与变量和数组的定义方式相同,只是不能初始化。
注意大括号后面的分号;不能少,这是一条完整的语句。
结构体也是一种数据类型,它由程序员自己定义,可以包含多个其他类型的数据。
像 int、float、char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,我们将它称为复杂数据类型或构造数据类型。
结构体变量
既然结构体是一种数据类型,那么就可以用它来定义变量。 例如:struct stu stu1, stu2; 定义了两个变量 stu1 和 stu2,它们都是 stu 类型,都由 5 个成员组成。 注意关键字struct不能少
stu 就像一个“模板”,定义出来的变量都具有相同的性质。也可以将结构体比作“图纸”,将结构体变量比作“零件”,根据同一张图纸生产出来的零件的特性都是一样的。
你也可以在定义结构体的同时定义结构体变量:
struct stu{
char *name;
int num;
int age;
int group;
float score;
} stu1, stu2;
将变量放在结构体定义的最后即可。
如果只需要 stu1、stu2 两个变量,后面不需要再使用结构体名定义其他变量,那么在定义时也可以不给出结构体名,如下所示:
struct{
char *name;
int num;
int age;
char group;
float score;
} stu1, stu2;
这样做书写简单,但是因为没有结构体名,后面就没法用该结构体定义新的变量。
成员的获取和赋值
结构体和数组类似,也是一组数据的集合,整体使用没有太大的意义。数组使用下标[ ]获取单个元素,结构体使用点号 . 获取单个成员。获取结构体成员的一般格式为:
结构体变量名.成员名;
通过这种方式可以获取成员的值,也可以给成员赋值:
#include <stdio.h>
int main(){
struct{
char *name;
int num;
int age;
int group;
float score;
} stu1;
stu1.name = "周杰伦";
stu1.num = 1001;
stu1.age = 18;
stu1.group = 1;
stu1.score = 100;
printf("%s的学号是%d,年龄是%d,在%d组,今年的成绩是%.1f!\n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score);
return 0;
}
周杰伦的学号是1001,年龄是18,在1组,今年的成绩是100.0!
除了可以对成员进行逐一赋值,也可以在定义时整体赋值,例如:
struct{
char *name;
int num;
int age;
char group;
float score;
} stu1 = { "周杰伦", 1001, 18, 1, 100 };
周杰伦的学号是1001,年龄是18,在1组,今年的成绩是100.0!
不过整体赋值仅限于定义结构体变量的时候,在使用过程中只能对成员逐一赋值,这和数组的赋值非常类似。
需要注意的是,结构体是一种自定义的数据类型,是创建变量的模板,不占用内存空间;结构体变量才包含了实实在在的数据,需要内存空间来存储。
你们说是不是有问题,这和上面的共用体有什么区别,你讲了干什么?? 这就是共用体与结构体的区别:
共同体:使几个不同类型的变量共占一段内存(相互覆盖)。所占内存长度是最长那个成员占的内存长度。
结构体:把不同类型的数据组合成一个整体。所占内存长度是各成员占之间的内存长度的总和。
结构体我们这里大概说一下,😂😂😂😂后面还会遇到的(你这是大概吗,。。。。。。)
从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你! |
如果又出错的,请各位友友指正。
新人报到,各位友友们,给我个三联(点赞,关注,收藏)
|