『C语言入门』初识C语言

文章目录

  • 前言
  • C语言简介
  • 一、Hello World!
    • 1.1 编写代码
    • 1.2 代码解释
    • 1.3 编译和运行
    • 1.4 结果
  • 二、数据类型
    • 2.1 基本数据类型
    • 2.2 复合数据类型
    • 2.3 指针类型
    • 2.4 枚举类型
  • 三、C语言基础
    • 3.1 变量和常量
    • 3.2 运算符
    • 3.3 控制流语句
    • 3.4 注释
      • 单行注释
      • 多行注释
      • 注释的作用
  • 四、 函数
    • 4.1 函数的声明和定义
    • 4.2 函数的参数和返回值
    • 4.3 函数的调用
    • 4.4 主函数(main函数)
    • 4.5 内置函数和自定义函数
  • 五、 数组和字符串
    • 5.1 数组的声明和初始化
    • 5.2 多维数组
    • 5.3 字符串
    • 5.4 字符串处理函数
    • 5.5 字符串输入和输出
  • 六、 指针和内存管理
    • 6.1 指针的概念
    • 6.2 指针的运算
        • 6.3 动态内存分配
        • 6.4 指针和数组的关系
  • 七、文件操作和输入/输出
    • 7.1 文件操作
    • 7.2 格式化输入/输出
    • 7.3 标准输入/输出
  • 八、错误处理和调试
    • 8.1 错误代码
    • 8.2 断言
    • 8.3 调试器
    • 8.4 日志和打印调试信息
  • 结语

前言

在这个数字化时代,计算机编程已经成为连接人类与技术的桥梁。而在编程的世界中,C语言犹如一座承载着无限可能性的基石。作为计算机编程的经典之选,C语言无疑是每个刚刚踏入编程领域的初学者的理想起点。本篇博客将带您踏上一段奇妙的C语言学习之旅,不仅会教您编写代码,更会启发您深入思考计算机科学的精髓。

C语言简介

C语言是一门古老而强大的编程语言,诞生于20世纪70年代初由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发而成,C语言一经问世,立即在计算机科学领域引起轰动。其简洁、灵活和高效的特性,使其成为了许多编程任务的首选语言。

C语言既具备高级编程语言的抽象特性,又直接暴露了底层的计算机硬件操作。这种特性使得C语言不仅适用于应用程序的开发,还可用于系统级编程和嵌入式系统的构建。实际上,许多操作系统和编译器本身就是用C语言编写的。🌟

C语言的语法简洁而灵活允许程序员进行精细的控制和优化。它提供了丰富的数据类型,包括整数、浮点数、字符等,以及数组、结构体和指针等数据结构,使得程序员可以更好地管理和组织数据。此外,C语言也支持低级的内存操作,使得程序员可以直接操作计算机内存,从而实现高效的算法和数据结构。💡

尽管C语言在很多方面表现出色,但它也需要程序员自己负责管理内存,这可能会导致一些错误和挑战。然而,正是这些挑战培养了程序员的深刻理解和技能,使他们能够编写更加健壮和高性能的程序。

一、Hello World!

在学习任何编程语言时,第一个示例程序通常是经典的"Hello, World!"。它是一个简单的程序,可以帮助你了解基本的语法和程序结构。让我们一起来编写你的第一个C语言程序吧!

1.1 编写代码

打开你选择的集成开发环境(IDE)或者文本编辑器,创建一个新的源代码文件,文件名可以是hello.c。然后在文件中输入以下代码:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

1.2 代码解释

#include <stdio.h>

这是一个预处理指令。预处理器会在编译代码之前执行,它告诉编译器引入了名为stdio.h标准输入输出库。这个库包含了用于处理输入输出的函数,如printf

int main() {

这是C语言程序的入口点。所有C程序都必须包含一个名为main的函数,它是程序的起始执行点int表示main函数将返回一个整数值。

    printf("Hello, World!\n");

这行代码使用**printf函数打印文本到控制台。printf是C语言中用于格式化输出的函数**。括号内的内容是你要输出的文本,\n表示换行

    return 0;
}

return语句用于指定函数的返回值。main函数中通常使用return 0;表示程序执行成功。其他非零值可能表示程序遇到了错误。

要理解代码的执行过程,你可以将程序想象成一系列的步骤:

  1. 预处理器会处理**#include <stdio.h>,并将stdio.h**中的内容添加到程序中,以便在程序中使用标准输入输出函数。
  2. 当程序开始执行时,它会跳转main函数。main函数是程序的起始点
  3. 在**main函数中,printf("Hello, World!\n");**语句会执行。printf函数会将指定的文本打印到控制台。
  4. return 0;表示main函数执行成功,并返回整数值0,这表示程序正常终止
  5. 整个程序执行完毕,控制台会显示出你的"Hello, World!"消息。

1.3 编译和运行

保存文件后,你可以使用IDE中的编译和运行按钮,或者通过命令行运行以下命令来编译和运行程序:

gcc -o hello hello.c
./hello

第一条命令使用GCC编译器将hello.c源文件编译为可执行文件hello。第二条命令运行生成的可执行文件。

1.4 结果

如果一切顺利,你应该能够在控制台看到输出:

Hello, World!

恭喜你,你已经成功编写并运行了你的第一个C语言程序!"Hello, World!"程序可能非常简单,但它为你提供了学习C语言的一个良好起点。在接下来的学习中,你将逐步了解更多复杂的语法和概念。

二、数据类型

当你开始学习编程语言时,了解数据类型至关重要,因为数据类型定义了变量可以存储的数据种类和范围。在C语言中,有多种基本数据类型,每种类型在内存中占据不同的空间并具有不同的取值范围。以下是一些常见的C语言数据类型的简介:

2.1 基本数据类型

  • 整数类型:用于存储整数值,分为有符号和无符号两种。有符号整数可以表示正数、负数和零,而无符号整数只能表示非负数(正数和零)。常见整数类型有:
    • int:常规整数,根据平台占用不同字节
    • short:短整数,占用较少字节。
    • long:长整数,占用较多字节。
    • unsigned intunsigned shortunsigned long:无符号整数。
  • 浮点类型:用于存储小数或实数值,包括单精度和双精度。常见浮点类型有:
    • float:单精度浮点数,占用4字节。
    • double:双精度浮点数,占用8字节。
  • 字符类型:用于存储单个字符,通常使用char数据类型。

2.2 复合数据类型

  • 数组:由相同类型的元素组成的集合,通过索引访问。例如:int scores[5]; 定义一个包含5个整数的数组。
  • 联合体(Union):类似结构体,但成员共享相同内存,只能存储一个成员的值,节省内存。
  • 结构体:将不同类型的数据组合成自定义的复合数据类型。例如:
struct Student {
    char name[50];
    int age;
    float gpa;
};

2.3 指针类型

指针:存储变量内存地址,使你能直接访问内存中的数据。指针类型变量可指向特定数据类型。例如:int *ptr; 定义指向整数的指针。

2.4 枚举类型

枚举:定义用户自定义数据类型,限制变量可能取值范围。例如:

enum Day {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    // ...
};

掌握各种数据类型将帮助你更好地管理数据,有效地创建变量,并确保程序正确性和性能。在C语言中,选择适当的数据类型对于正确使用变量、执行算术运算以及在程序中传递参数至关重要。

三、C语言基础

3.1 变量和常量

  • 变量:在程序中用于存储数据的容器,需要声明并指定其数据类型。
int num;
  • 常量:值不可更改的变量,在声明时必须初始化,可以使用const关键字来声明常量。
const double pi = 3.14159;

3.2 运算符

  • 算术运算符:用于执行基本算术操作,如加法、减法、乘法和除法。
int sum = 10 + 5;
  • 赋值运算符:用于给变量赋值,将右边的值赋给左边的变量。
int x = 5;
  • 比较运算符:用于比较两个值,返回布尔值(真或假)。
if (x > 0) {
    // ...
}
  • 逻辑运算符:用于组合和操作布尔值,如与、或和非。
if (x > 0 && y < 10) {
    // ...
}

3.3 控制流语句

  • 条件语句(if-else):根据条件的真假来执行不同的代码块。
if (score >= 60) {
    printf("Pass\n");
} else {
    printf("Fail\n");
}
  • 循环语句:重复执行一段代码,有三种主要类型:forwhiledo-while
for (int i = 0; i < 5; i++) {
    printf("%d\n", i);
}

3.4 注释

单行注释

单行注释用于在一行代码后添加说明。它从//开始,一直到该行的末尾。编译器会忽略这些注释,不会将其包含在生成的可执行文件中。

int age = 25;  // 声明并初始化年龄变量

多行注释

多行注释用于跨越多行代码的解释。它从/\*开始,到\*/结束。多行注释可以包含多行文本,并且可以用于注释掉一整段代码。

在这里插入图片描述

注释的作用

  • 解释代码:注释可以提供代码的解释和上下文,帮助其他人理解你的代码。这对于团队协作和代码维护非常重要。
  • 记笔记:你可以使用注释来记录你的想法、思路以及需要后续处理的问题。这有助于你在以后的开发中快速回顾和处理。
  • 调试:在调试时,你可以使用注释来排除一些代码,以确定问题是否出现在特定部分。
  • 临时更改:如果你想临时禁用某些代码,你可以使用注释来实现,而无需实际删除这些代码。

四、 函数

函数是C语言中的基本构建块之一,它们允许你将一段代码封装为可重用的模块,并通过调用函数来执行特定任务。使用函数可以使你的代码更加模块化、结构化和易于维护。以下是关于函数的一些重要概念:

4.1 函数的声明和定义

在使用函数之前,需要先声明它。函数声明告诉编译器有一个函数存在,但不提供函数的具体实现。函数定义提供了函数的实际代码。例如:

// 函数声明
int add(int a, int b);

// 函数定义
int add(int a, int b) {
    return a + b;
}

4.2 函数的参数和返回值

函数可以接受参数,执行特定的操作,然后返回一个值。参数是传递给函数的输入值,而返回值是函数执行后的输出结果。

int square(int x) {
    return x * x;
}

4.3 函数的调用

通过函数名和传递的参数调用函数。调用函数会执行函数的代码,并将返回值返回给调用处。

int result = square(5); // 调用square函数,计算5的平方

4.4 主函数(main函数)

每个C程序都必须包含一个名为main的函数。程序从main函数开始执行,当main函数执行完毕时,程序终止。

int main() {
    // 主函数的代码
    return 0;
}

4.5 内置函数和自定义函数

C语言提供了许多内置函数,如数学函数、字符串处理函数等。此外,你也可以创建自己的函数来执行特定任务。

五、 数组和字符串

在C语言中,数组和字符串是常用的数据结构,用于存储一组相关的数据。数组是相同类型元素的有序集合,而字符串是字符数组的特殊形式。以下是关于数组和字符串的重要内容:

5.1 数组的声明和初始化

数组的声明需要指定元素的数据类型和元素数量。可以通过下标(索引)访问数组中的元素。

int scores[5]; // 声明一个包含5个整数的数组
scores[0] = 85; // 为数组元素赋值

也可以在声明时进行初始化:

int numbers[3] = {10, 20, 30}; // 声明并初始化一个包含3个整数的数组

5.2 多维数组

多维数组是数组的扩展,可以是二维、三维或更多维度的数组。它们通常用于表示矩阵、表格等数据结构。

int matrix[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

5.3 字符串

字符串是字符的数组,以null终止字符(‘\0’)作为字符串的结尾。

char greeting[] = "Hello, world!";

5.4 字符串处理函数

C语言提供了许多字符串处理函数,用于处理字符串的操作,如连接、比较、复制等。

#include <string.h>

char source[] = "Hello";
char destination[10];

strcpy(destination, source); // 复制source到destination

5.5 字符串输入和输出

使用scanf函数从用户输入中读取字符串,使用printf函数将字符串输出到控制台。

char name[50];
printf("请输入你的名字:");
scanf("%s", name);
printf("你好,%s!\n", name);

数组和字符串是C语言中用于存储和操作数据的重要工具。它们在各种编程场景中都得到广泛应用,从简单的存储数据到处理复杂的文本信息。理解数组和字符串的特性和使用方法将有助于你更高效地编写程序。

六、 指针和内存管理

在C语言中,指针是一个重要的概念,它允许你直接访问内存中的数据,并提供了更高级的内存管理能力。以下是关于指针和内存管理的重要内容:

6.1 指针的概念

指针是存储内存地址的变量。通过指针,你可以直接访问存储在内存中的数据。

int num = 42;
int *ptr;       // 定义一个指向整数的指针
ptr = &num;     // 将指针指向num的地址

6.2 指针的运算

指针可以进行加法和减法运算,以访问相邻内存单元的数据。

int numbers[5] = {10, 20, 30, 40, 50};
int *ptr = numbers; // 将指针指向数组的第一个元素

int thirdValue = *(ptr + 2); // 访问数组的第三个元素,即30

6.3 动态内存分配

C语言允许你在运行时动态分配内存,这样你可以根据需要分配和释放内存。

int *dynamicArray = malloc(5 * sizeof(int)); // 分配一个包含5个整数的动态数组

// 使用dynamicArray

free(dynamicArray); // 释放分配的内存

6.4 指针和数组的关系

数组名实际上是指向数组第一个元素的指针。因此,可以使用指针来访问数组元素。

int numbers[3] = {10, 20, 30};
int *ptr = numbers;

int firstValue = *ptr; // 数组的第一个元素,即10
int secondValue = *(ptr + 1); // 数组的第二个元素,即20

指针和内存管理是C语言的核心概念之一,了解它们将帮助你更好地理解内存的工作方式,提高代码的灵活性,并避免内存泄漏等问题。指针的使用虽然强大,但也需要小心谨慎,以避免出现错误。

七、文件操作和输入/输出

在C语言中,文件操作和输入/输出(I/O)是处理外部数据的关键部分。通过文件操作,你可以读取和写入文件,而输入/输出允许你与用户交互并处理文本。

7.1 文件操作

C语言中的文件操作涉及打开、读取、写入和关闭文件。你可以使用标准库函数来执行这些操作。

#include <stdio.h>

int main() {
    FILE *filePointer;
    char data[100];

    filePointer = fopen("file.txt", "r"); // 打开文件以读取数据
    if (filePointer == NULL) {
        printf("无法打开文件\n");
        return 1;
    }

    fgets(data, 100, filePointer); // 从文件读取一行数据
    printf("%s", data);

    fclose(filePointer); // 关闭文件
    return 0;
}

7.2 格式化输入/输出

使用printfscanf函数,你可以格式化地输出数据到屏幕和从用户处输入数据。

#include <stdio.h>

int main() {
    int age;
    printf("请输入你的年龄:");
    scanf("%d", &age);
    printf("你的年龄是:%d\n", age);
    return 0;
}

7.3 标准输入/输出

C语言中有三个标准的I/O流:stdin(标准输入)、stdout(标准输出)和stderr(标准错误输出)。

#include <stdio.h>

int main() {
    fprintf(stdout, "这是标准输出\n");
    fprintf(stderr, "这是标准错误输出\n");
    return 0;
}

文件操作和输入/输出是C语言中处理外部数据的重要组成部分。它们使你能够读取和写入文件,与用户交互,并将程序的结果输出到屏幕上。掌握文件操作和I/O将使你能够创建更丰富的应用程序,能够与外部数据进行有效交互。

八、错误处理和调试

在编程过程中,错误是不可避免的。C语言提供了一些机制来处理错误并进行调试,以确保程序的正确性和稳定性。

8.1 错误代码

C语言中,通常使用返回值来指示函数是否执行成功,以及在错误发生时提供额外的信息。标准库函数通常会返回特定的错误代码。

#include <stdio.h>

int main() {
    FILE *filePointer;
    filePointer = fopen("nonexistent_file.txt", "r");
    if (filePointer == NULL) {
        perror("无法打开文件");
        return 1;
    }
    fclose(filePointer);
    return 0;
}

8.2 断言

断言是在代码中添加的条件检查,用于确保程序在满足某些条件时继续执行。如果断言条件不满足,程序将中止并显示错误消息。

#include <assert.h>

int main() {
    int x = 5;
    assert(x > 10); // 如果x不大于10,程序将中止
    return 0;
}

8.3 调试器

调试器是一种工具,用于追踪程序的执行过程并检查变量的值。在C语言中,你可以使用调试器来识别和修复错误。

8.4 日志和打印调试信息

在程序中添加打印语句或日志,可以帮助你追踪程序的执行,以及查找问题所在。

#include <stdio.h>

int main() {
    int x = 42;
    printf("x的值:%d\n", x); // 打印调试信息
    return 0;
}

错误处理和调试是开发过程中必不可少的一部分。通过使用适当的错误处理机制和调试工具,你可以更轻松地识别和解决问题,确保程序的正确性和稳定性。

结语

通过这篇博客,我们深入了解了C语言的基础知识。从数据类型和变量到控制流语句,再到函数、数组、指针,以及文件操作和调试技巧,我们探索了C语言的核心概念和关键特性。C语言作为一门古老而强大的编程语言,为我们提供了处理底层细节和开发高效程序的工具。

虽然C语言可能对初学者来说有一些挑战,但通过不断的学习、练习和实践,你将逐渐掌握这门语言,并能够编写出高效、健壮的程序。无论是为了系统编程、嵌入式开发、还是学术研究,C语言都是一个极具价值的工具。

希望这篇博客能够帮助你在C语言的学习之旅中起到一些指引作用。在掌握了这些基础后,你可以继续深入学习更高级的主题,探索更多C语言的应用领域。祝愿你在编程的道路上取得巨大的成功!

如果你有任何问题或需要进一步的帮助,欢迎随时与我交流。继续努力,愿你在编程世界中探索无限可能!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/88289.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

bilibiliDown-极简纯净B站视频解析提取工具

bilibiliDown是一款免费极简纯净B站视频解析提取工具&#xff0c;可一键解析单视频、合集、分集、封面、srt字幕、xml弹幕、ass弹幕、视频下载链接&#xff0c;帮助你轻松将bilibili视频下载到本地电脑或手机相册&#xff0c;工具是一个前后端分离的项目&#xff0c;使用spring…

JMeter分布式集群---部署多台机器进行性能压力测试

有些时候&#xff0c;我们在进行压力测试的时候&#xff0c;随着模拟用户的增加&#xff0c;电脑的性能&#xff08;CPU,内存&#xff09;占用是非常大的&#xff0c;为了我们得到更加理想的测试结果&#xff0c;我们可以利用jmeter的分布式来缓解机器的负载压力&#xff0c;分…

Mobx在非react组件中修改数据,在ts/js中修改数据实现响应式更新

我们都之前在封装mobx作为数据存储的时候&#xff0c;使用到了useContext作为包裹&#xff0c;将store变成了一个hooks使用&#xff0c;封装代码: import React from react import UserInfo from ./user import Setting from ./seting import NoteStore from ./noteclass Stor…

软件开发中常用数据结构介绍:C语言队列

工作之余来写写C语言相关知识&#xff0c;以免忘记。今天就来聊聊C语言实现循环队列&#xff0c;我是分享人M哥&#xff0c;目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问&#xff0c;可底下评论&#xff01; 如果觉得文章内容在工作学习中有帮助到你&…

Microsoft Excel整合Python:数据分析的新纪元

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【科研】-- 如何将Endnote中参考文献格式插入到Word?

文章目录 如何将Endnote中参考文献格式插入到Word&#xff1f; 如何将Endnote中参考文献格式插入到Word&#xff1f; 1、首先确保Endnote和Word安装正确&#xff0c;正常可以从学校官网中下载到正版软件&#xff0c;下载后在word栏目中会出现EndNote的标签&#xff1b; 2、可…

ChatGPT + Flutter快速开发多端聊天机器人App

下载地址&#xff1a;ChatGPT Flutter快速开发多端聊天机器人App 下载地址&#xff1a;ChatGPT Flutter快速开发多端聊天机器人App

Python标准库概览

Python标准库概览 知识点 标准库: turtle库(必选)标准库: random库(必选)、time库(可选&#xff09; 知识导图 1、turtle库概述 turtle&#xff08;海龟&#xff09;是Python重要的标准库之一&#xff0c;它能够进行基本的图形绘制。turtle库绘制图形有一个基本框架&#x…

优美而高效:解决服务器通信问题

题目背景 在这个问题中&#xff0c;我们面临着一幅服务器分布图。图中的每个单元格可能有服务器&#xff08;标记为1&#xff09;或者没有&#xff08;标记为0&#xff09;。我们的任务是找出能够与至少一台其他服务器进行通信的服务器数量。 算法思路 为了解决这个问题&…

linux并发服务器 —— 动态库和静态库实战(一)

-E 预处理指定源文件 -S 编译指定源文件 -c 汇编指定源文件 -o 生成可执行文件 -I directory 指定Include包含文件的搜索目录 -g 编译的时候生成调试信息 -D 在程序编译时指定一个宏 -w 不生成任何的警告信息 -Wall 生成所有警告 -On n:0~3&#xff1b;表示编译器的优…

使用yarn build 打包vue项目时静态文件或图片未打包成功

解决Vue项目使用yarn build打包时静态文件或图片未打包成功的问题 1. 检查vue.config.js文件 首先&#xff0c;我们需要检查项目根目录下的vue.config.js文件&#xff0c;该文件用于配置Vue项目的打包和构建选项。在这个文件中&#xff0c;我们需要确认是否正确地配置了打包输…

JUC初识

JUC 是什么 java.util.concurrent 在并发编程中使用的工具包 从线程start 开始 package com.jhj.Thread;public class ThreadDemo {public static void main(String[] args) {Thread t1 new Thread(() -> {}, "t1");t1.start();} }start 方法调的是native sta…

【Java alibabahutool】JSON、Map、实体对象间的相互转换

首先要知道三者的互转关系&#xff0c;可以先将JSON理解成是String类型。这篇博文主要是记录阿里巴巴的JSONObject的两个方法。toJSONString()以及parseObject()方法。顺便巩固Map与实体对象的转换技巧。 引入依赖 <!-- 阿里巴巴 JSON转换 以下二选一即可 没有去细研究两者…

SQL注入读写文件

文章目录 条件利用SQL注入漏洞读取hosts文件查看文件读写权限安全选项允许导入导出读取hosts文件 利用SQL注入漏洞写入一句话木马&#xff0c;并用蚁剑连接webshell写入文件 条件 SQL注入有直接SQL注入&#xff0c;也有文件读写时的注入&#xff0c;后者的主要 目的在于获取web…

缓存最佳实践

目录 前言 一、Cache Aside&#xff08;旁路缓存&#xff09;策略 二、不一致解决场景及解决方案 一、数据库主从不一致 二、缓存与数据库不一致 三、问题分析 三、缓存误用 一、多服务共用缓存实例 二、调用方缓存数据 三、缓存作为服务与服务之间传递数据的媒介 四…

python+tkinter实现多页面多菜单的demo实例

本篇文章主要讲解,python+tkinter多页面多菜单的demo实例,支持一个新窗口弹出、多页面切换,顶部菜单构建及事件绑定。 日期:2023年8月25日 版本:python3.9.6 实际效果 消息菜单-具体效果: 页面菜单具体效果: 事件菜单具体效果: 环境及依赖 python 3.9.6 依赖信息: …

WPF网格拖动自动布局效果

WPF网格拖动自动布局效果 使用Canvas和鼠标相关事件实现如下的效果: XAML代码: <Window x:Class="CanvasTest.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:

Python科研数据可视化

在过去的20 年中&#xff0c;随着社会产生数据的大量增加&#xff0c;对数据的理解、解释与决策的需求也随之增加。而固定不变是人类本身&#xff0c;所以我们的大脑必须学会理解这些日益增加的数据信息。所谓“一图胜千言”&#xff0c;对于数量、规模与复杂性不断增加的数据&…

LLMs对单个任务进行微调Fine-tuning on a single task

虽然LLM因其在单一模型内执行多种不同语言任务的能力而变得出名&#xff0c;但您的应用程序可能只需要执行单一任务。在这种情况下&#xff0c;您可以微调一个预训练的模型&#xff0c;以仅提高您感兴趣的任务的性能。例如&#xff0c;使用该任务的示例数据集进行摘要。有趣的是…

科技资讯|苹果Apple Watch新专利,可根据服装、表带更换表盘颜色

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果公司近日获得了一项 Apple Watch 相关的技术专利&#xff0c;最大的亮点在于配备颜色采样传感器&#xff0c;可以根据表带、服装自动变幻变盘颜色和主题。 Apple Watch 正面配备颜色采样传感器&am…