初识C语言(01)—学习笔记
1什么是C语言?
C语言是一种通用的高级编程语言,由美国计算机科学家丹尼斯·里奇(Dennis Ritchie)在20世纪70年代初在贝尔实验室开发。C语言被设计为一种系统编程语言,最初用于开发UNIX操作系统。它具有高度的可移植性和效率,并且已经成为了许多其他编程语言的基础。
C语言具有以下特点:
-
简洁而灵活: C语言的语法简洁而灵活,易于学习和理解。它提供了丰富的语言特性,允许程序员以多种方式解决问题。
-
高效性: C语言产生的代码执行效率很高,因为它是一种编译型语言,可以直接编译成机器码。
-
可移植性: C语言编写的程序通常具有很高的可移植性,可以在各种不同的计算机平台上运行而无需进行大量修改。
-
强大的功能性: C语言提供了丰富的库函数和功能,包括对文件操作、内存管理、数据结构等方面的支持。
-
面向过程: C语言是一种面向过程的编程语言,它通过函数和数据结构来组织程序,使得程序结构清晰、模块化。
-
与硬件交互: 由于C语言可以直接访问内存地址和处理底层细节,因此它特别适用于系统编程和与硬件交互的应用。
C语言在计算机科学领域有着广泛的应用,包括系统软件开发、嵌入式系统、游戏开发、编译器设计等方面。虽然C语言本身并不具备很多现代编程语言的高级特性,但它仍然是一种非常重要的语言,为许多其他编程语言提供了基础和启发。
2 我的第一个C语言程序
#include<stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
Ctrl+F5执行代码,其打印结果为:
#include<stdio.h>:每个C语言程序代码都包含一个头文件,其中include称为文件包命令,其意义是把尖括号内指定的文件包含到本程序中,成为本程序的一部分。
int main():这是一个程序的入口,并且在一个工程中有且只有一个main函数。在C语言程序中主体是int main()后面加一对花括号{}。
printf:表示要输出的结果,其结果放入括号双引号(“ ”)中,如果想要输出想要的结果有以下固定形式(“需要打印的结果\n”),这里\n表示换行,可有可无,只需要看打印结果。
return 0:返回值为0,先不深入探讨,记住固定格式,打上去即可。
注意,在main函数中每一条语句后面需要跟上一个英文输入状态下的分号
3数据类型
数据类型 | 描述 | 所占空间 |
---|---|---|
char | 字符数据类型 | 1字节 |
short | 短整型 | 2字节 |
int | 整形 | 4字节 |
long | 长整型 | 4字节 |
long long | 更长的整型 | 8字节 |
float | 单精度浮点数 | 4字节 |
double | 双精度浮点数 | 8字节 |
以下是各种数据类型的空间大小的代码实现
#include<stdio.h>
int main()
{
printf("%d\n",sizeof(char) );
printf("%d\n",sizeof(short) );
printf("%d\n",sizeof(int) );
printf("%d\n",sizeof(long) );
printf("%d\n",sizeof(long long) );
printf("%d\n",sizeof(float) );
printf("%d\n",sizeof(double) );
return 0;
}
代码中的%d是用来打印整型的,函数sizeof()用于输出数据类型所占空间的大小
单位
比特(bit) | 字节(byte) | KB | MB | GB |
---|
换算关系
$$
1 byte = 8 bit\
1 KB = 1024 byte\
1MB = 1024KB\
1GB = 1024MB
$$
由上可知在,计算机中存储数据最小的单位是bit(比特),他是一个二进制的数。
二进制的世界
0 | 1 |
---|
十进制的世界
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|
4 常量与变量
常量:不变的值,例如身份证号、圆周率、性别、血型等
变量: 变得值,例如年龄、体重、薪资等
4.1 定义变量的方法
#include<stdio.h>
int main()
{
short age = 20; // 年龄
int higt = 180;//身高
float weight = 88.5;//体重
return 0;
}
首先要先声明变量是什么类型的(例如char,short,float等),然后为变量取一个名字(根据习惯即可,后面做项目时要求比较高要见名知意……直接百度翻译,哈哈~;上面代码中体现的变量名字分别是age,higt,weight),最后赋值,用等号连接,并习惯性的打上英文状态下的分号。
4.2 全局变量和局部变量
全局变量:定义在int main()之外的,对整个代码均有效
局部变量:定义只在一对{}之内有效,出了这个范围则无效
如果全局变量和局部变量同时存在,则局部变量优先被使用。下面的一段代码给出形象的展示
#include<stdio.h>
int a = 2025; // 全局变量
int main()
{
int a = 2023; // 局部变量
int b = 2024; // 局部变量
printf("a = %d\n", a);
return 0;
}
// 输出结果为 a = 2023
4.3变量的使用
下面是计算两个数的和的代码
#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;
}
//输出内容
//请输入两个整数28 60
//sum = 88
我们在代码开始需要对三个变量进行初始化,num1,num2,sum均赋值为0;然后输出提示语句"请输入两个整数",再然后是输入函数scanf("%d %d", &num1, &num2)来寻找num1,num2的地址,以达到对变量赋值的目的,再由变量sum来承接num1和num2加和的值,最后用printf()函数输出sum的值。
4.4变量的作用域和生命周期
作用域:局部变量的作用域是变量所在的局部范围;全局变量的作用域是整个工程
生命周期:局部变量进入作用域生命周期开始,出作用域生命周期结束;全局变量的生命周期是整个程序的生命周期
4.5常量
-
字面常量,即已知的值,例如30,3.14,‘W’(字符),“abc”(字符串)
-
const修饰的常变量
#include<stdio.h> int main() { const int a = 10; //int a = 20;//报错 printf("%d\n", a); return 0; }
在C语言中,const修饰的a 本质是变量,但不能被修改,有常量的属性。
-
define定义的标识符常量
定义标识符不占用内存,只是一个临时的符号,预编译后这个符号就不存在了。例如,对MAX的赋值在main函数之外定义的
# include <stdio.h> # define MAX 100 int main() { printf("%d\n", MAX); int a = MAX; printf("%d\n", a); return 0; } // 输出结果 // 100 // 100
-
枚举常量
在定义时需要一一列举出来的常量,例如三原色(红色,绿色,蓝色),性别(男生,女生,保密_);在定义是需要用到枚举关键字enum.
# include <stdio.h> // 三原色 enum Color { RED,//红色 GREEN,//绿色 BLUE,//蓝色 }; int main() { // 声明一个枚举变量并初始化为枚举常量 RED enum Color c = RED; // 输出枚举常量的值 printf("Color is: "); // 使用 switch 语句来根据枚举变量的值输出对应的字符串 switch (c) { case RED: printf("RED\n"); break; case GREEN: printf("GREEN\n"); break; case BLUE: printf("BLUE\n"); break; } return 0; }
5 字符串和注释
5.1 字符串
字符串是由双引号引起来的一串字符称为字符串字面值,简称字符串
# include <stdio.h>
int main()
{
printf("Hello,word!\n"); //字符串为Hello,word!
char arr1[] = "abcdef";
char arr2[] = { 'a','b','c','d','e','f' };
char arr3[] = { 'a','b','c','d','e','f' ,'\0'};
// f10调试,看一看三个数组长什么样子
// 如下图所示
// 字符串的长度 -> strlen()
//printf("%d\n", strlen(arr1));
//printf("%d\n", strlen(arr2));
//printf("%d\n", strlen(arr3));
return 0;
}
// 输出结果
//Hello, word!
//6
//38
//6
通过上面的调试缓解,我们可以看到字符串结束的标志是“\0”;并且我们还输出了字符串的长度,其中函数strlen()是用来求字符串长度的一个函数。
5.2 注释
- 注释可以梳理思路、
- 对复杂的代码进行解释
- 写代码的时候学注释,是帮助自己也是帮助他人
注意:我们这里跳过了一节转义字符,将在下一期更新_