加载中...

初识C语言(01)—学习笔记

1什么是C语言?

C语言是一种通用的高级编程语言,由美国计算机科学家丹尼斯·里奇(Dennis Ritchie)在20世纪70年代初在贝尔实验室开发。C语言被设计为一种系统编程语言,最初用于开发UNIX操作系统。它具有高度的可移植性和效率,并且已经成为了许多其他编程语言的基础。

C语言具有以下特点:

  1. 简洁而灵活: C语言的语法简洁而灵活,易于学习和理解。它提供了丰富的语言特性,允许程序员以多种方式解决问题。

  2. 高效性: C语言产生的代码执行效率很高,因为它是一种编译型语言,可以直接编译成机器码。

  3. 可移植性: C语言编写的程序通常具有很高的可移植性,可以在各种不同的计算机平台上运行而无需进行大量修改。

  4. 强大的功能性: C语言提供了丰富的库函数和功能,包括对文件操作、内存管理、数据结构等方面的支持。

  5. 面向过程: C语言是一种面向过程的编程语言,它通过函数和数据结构来组织程序,使得程序结构清晰、模块化。

  6. 与硬件交互: 由于C语言可以直接访问内存地址和处理底层细节,因此它特别适用于系统编程和与硬件交互的应用。

C语言在计算机科学领域有着广泛的应用,包括系统软件开发、嵌入式系统、游戏开发、编译器设计等方面。虽然C语言本身并不具备很多现代编程语言的高级特性,但它仍然是一种非常重要的语言,为许多其他编程语言提供了基础和启发。

2 我的第一个C语言程序

#include<stdio.h>
int main()
{
	printf("Hello World\n");
	return 0;
}

Ctrl+F5执行代码,其打印结果为:

image-20240522182758478

#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
image-20240524101912159

通过上面的调试缓解,我们可以看到字符串结束的标志是“\0”;并且我们还输出了字符串的长度,其中函数strlen()是用来求字符串长度的一个函数。

5.2 注释

  • 注释可以梳理思路、
  • 对复杂的代码进行解释
  • 写代码的时候学注释,是帮助自己也是帮助他人

注意:我们这里跳过了一节转义字符,将在下一期更新_

posted @ 2024-05-24 12:03  一只小小小飞猪  阅读(19)  评论(0编辑  收藏  举报