C语言学习笔记<1>

1.

EOF(End of File)是文件结束标志,用于表示文件已经读取完毕。在C语言中,可以通过判断是否读取到EOF来判断文件是否读取完毕。

以下是一个简单的C语言代码示例,用于读取一个文本文件并输出其内容:

// 使用fopen函数打开一个名为example.txt的文件
// 然后使用fgetc函数逐个字符地读取文件内容
// 当fgetc函数返回EOF时,表示文件已经读取完毕,此时退出循环
// 最后,使用fclose函数关闭文件
#include <stdio.h>int main() {FILE *file;char ch;file = fopen("example.txt", "r"); // 打开文件if (file == NULL) {printf("无法打开文件");return 1;}while ((ch = fgetc(file)) != EOF) { // 逐个字符读取文件内容putchar(ch); // 输出字符}fclose(file); // 关闭文件return 0;
}

2.单步执行

#include <Windows.h>Sleep(1000);

#include <Windows.h> 是C/C++中引入Windows API头文件的语句,它包含了许多用于操作Windows操作系统的函数和数据类型。

Sleep(1000); 是一个Windows API函数,用于让程序暂停执行一段时间。在这个例子中,Sleep(1000) 表示程序将暂停执行1秒钟(1000毫秒)。这个函数通常用于控制程序的执行速度或者在需要等待某个操作完成时让程序暂停。

3.system执行系统操作
<1>清空屏幕
#include <stdlib.h>
system("cls");(system是一个库函数,可以执行系统命令)
<2>关机操作
#include <stdlib.h>
system("shutdown -s -t 60");

4.比较两个字符串是否相等

strcmp() 是C语言中的一个字符串比较函数,用于比较两个字符串的大小。头文件为<string.h>。它的原型为:

int strcmp(const char *str1, const char *str2);

参数 str1 和 str2 分别表示要比较的两个字符串。函数返回值为整数,如果 str1 小于 str2,则返回负数;如果 str1 等于 str2,则返回0;如果 str1 大于 str2,则返回正数。

简单示例:

#include <stdio.h>
#include <string.h>
int main() {char str1[] = "Hello";char str2[] = "World";char str3[] = "Hello";if (strcmp(str1, str2) == 0) {printf("str1 and str2 are equal");}else {printf("str1 and str2 are not equal");}if (strcmp(str1, str3) == 0) {printf("str1 and str3 are equal");}else {printf("str1 and str3 are not equal");}return 0;
}

5.生成随机数

#include <stdlib.h> //srand的头文件
#include <time.h> //time的头文件srand((unsigned int)time(NULL)); //NULL是空指针
int num = rand();//num是生成的随机数

6.cmd关机

shutdown -s -t 60六十秒后关机
shutdown -a取消关机

7.

在C语言中,static关键字有三个主要的用途:

  1. 修饰局部变量:当一个局部变量被声明为static时,它的生命周期会在整个程序运行期间持续存在,而不是在函数调用结束后销毁。这意味着即使函数返回,该变量的值也会保留下来,下次调用该函数时,它将保持上次的值。

  2. 修饰全局变量:当一个全局变量被声明为static时,它的作用域将被限制在声明它的源文件中。这意味着其他源文件不能访问这个变量。这可以防止命名冲突。

  3. 修饰函数:当一个函数被声明为static时,它的作用域也将被限制在声明它的源文件中。这也有助于防止命名冲突。

代码示例:

#include <stdio.h>// 使用static修饰全局变量
static int global_var = 0;void func() {// 使用static修饰局部变量static int local_var = 0;local_var++;global_var++;printf("local_var: %d, global_var: %d\n", local_var, global_var);
}int main() {func();func();return 0;
}

8.

extern关键字用于声明一个变量或函数,表示它的定义在其他地方。这样,多个源文件可以共享同一个变量或函数。

当一个变量或函数被声明为extern时,编译器会在链接阶段查找其定义。如果找不到定义,就会报错。

下面是一个简单的示例:

file1.c:

#include <stdio.h>int global_var = 10; // 全局变量void print_global_var() {printf("global_var: %d
", global_var);
}

file2.c:

#include <stdio.h>extern int global_var; // 声明全局变量
extern void print_global_var(); // 声明函数int main() {printf("global_var: %d
", global_var);print_global_var();return 0;
}

编译和链接:

gcc file1.c file2.c -o program // 编译和链接这两个源文件,得到了一个可执行程序

输出:

global_var: 10
global_var: 10

9.

结构体是一种复合数据类型,它可以包含不同类型的数据成员。结构体可以用来表示现实世界中的对象,例如学生、员工等。

定义结构体的语法如下:

struct 结构体名 {数据类型1 成员名1;数据类型2 成员名2;...
};
// 例如,我们可以定义一个表示学生信息的结构体:
struct Student {char name[20]; // 姓名int age;       // 年龄float score;   // 成绩
};// 使用结构体时,需要先声明一个结构体变量,然后可以通过点运算符访问其成员。例如:
struct Student stu;
stu.name = "张三";
stu.age = 18;
stu.score = 90.5;// 结构体指针可以用来指向结构体变量的地址。通过结构体指针可以访问结构体变量的成员。例如:
struct Student *p = &stu;
strcpy(p->name, "李四");
p->age = 20;
p->score = 80.5;// 结构体作为函数参数和返回值也是常见的用法。例如,我们可以定义一个函数来计算学生的平均成绩:
float average_score(struct Student *students, int num) {float sum = 0;for (int i = 0; i < num; i++) {sum += students[i].score;}return sum / num;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA学习笔记30(线程)

1.线程 1.线程的概念 1.线程是由进程创建的&#xff0c;是进程的一个实体 2.一个进程可以拥有多个线程 2.并发 ​ *同一时刻&#xff0c;多个任务交替执行&#xff0c;造成一种"貌似同时"的错觉&#xff0c;单核cpu实现的多任务就是并发 3.并行 ​ *同一时刻&…

私人密码管理储存库!Bitwarden 部署安装教程

日常生活中我们每个人都会拥有大量网站或社交平台帐号&#xff0c;时间久远了密码很容易忘记。因此&#xff0c;像 1Password 等密码管理 同步 一键登录的工具成为了很多人的首选。 然而 1Password 毕竟要付费&#xff0c;也有人会担心这类工具有隐私泄露的风险。其实&#…

随着深度学习的兴起,浅层机器学习没有用武之地了吗?

深度学习的兴起确实在许多领域取得了显著的成功&#xff0c;尤其是那些涉及大量数据和复杂模式的识别任务&#xff0c;如图像识别、语音识别和自然语言处理等。然而&#xff0c;这并不意味着浅层机器学习&#xff08;如支持向量机、决策树、朴素贝叶斯等&#xff09;已经失去了…

华为笔试面试题

华为 1.static有什么用途&#xff1f;&#xff08;请至少说明两种&#xff09; 1)在函数体&#xff0c;一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内&#xff08;但在函数体外&#xff09;&#xff0c;一个被声明为静态的变量可以被模块内所用函数…

Android集成Sentry实践

需求&#xff1a;之前使用的是tencent的bugly做为崩溃和异常监控&#xff0c;好像是要开始收费了&#xff0c;计划使用开源免费的sentry进行替换。 步骤&#xff1a; 1.修改工程文件 app/build.gradle apply plugin: io.sentry.android.gradle sentry {// 禁用或启用ProGua…

Elasticsearch:(一)ES简介

搜索引擎是什么?在不少开发者眼中,ES似乎就是搜索引擎的代名词,然而这实际上是一种误解。搜索引擎是一种专门用于从互联网中检索信息的技术工具,它主要可以划分为元搜索引擎、全文搜索引擎和垂直搜索引擎几大类。其中,全文搜索引擎和垂直搜索引擎是我们日常生活中较为常见…

算法打卡day50|单调栈篇01| Leetcode 739. 每日温度、496.下一个更大元素 I

算法题 Leetcode 739. 每日温度 题目链接:739. 每日温度 大佬视频讲解&#xff1a;739. 每日温度视频讲解 个人思路 因为题目所求的是找到一个元素右边第一个比自己大的元素&#xff0c;这是单调栈的经典题目&#xff0c;用栈来记录遍历过的元素 解法 单调栈 单调栈的本质…

opensshserver.config: line 3: Bad configuration option: GSSAPIKexAlgorithms

报错记录 /etc/crypto-policies/back-ends/opensshserver.config: line 3: Bad configuration option: GSSAPIKexAlgorithms 百度尝试 找到 “GSSAPIKexAlgorithms”这一行&#xff0c;然后注释掉 #GSSAPIKexAlgorithms vim /etc/ssh/sshd_config 这种方式并没有解决 解决方…

为什么中级职称评审不通过?有什么原因?

参与过职称评审或者有了解过职称评审的小伙伴们&#xff0c;应该都知道&#xff0c;职称评审都是有通过率&#xff0c;不是你去评&#xff0c;一定会评下来&#xff0c;一定会发证的&#xff0c;那么评审为什么不通过&#xff1f;有哪些原因呢&#xff1f; 现在职称评审人越来越…

免费开源圈子社交交友社区系统 可打包小程序 支持二开 源码交付!

线上社交的好处&#xff1a; 当今社会&#xff0c;人们越来越依赖于网络社交。互联网无疑为人类带来了许多好处&#xff0c; 其中一个就是线上社交。通过各种社交平台&#xff0c;人们可以随时随地互动交流&#xff0c;扩大自 己的社交圈&#xff0c;丰富生活。但是&#xf…

智慧气象站:赋能农业高标准发展新征程

随着科技的不断进步&#xff0c;智慧农业气象站已成为推动农业高标准发展的重要力量。它集成了先进的传感器、数据分析和通信技术&#xff0c;为农业生产提供了精准、及时的气象信息&#xff0c;助力农民实现科学种植、精准管理。 智慧农业气象站能够实时监测农田环境的温度、…

绿联 安装qbittorrent及一些常见错误的解决办法

绿联 安装qbittorrent及一些常见错误的解决办法 1、镜像 linuxserver/qbittorrent:latest 2、安装 2.1、创建容器 按需决定是否进行资源限制。 2.2、基础设置 2.3、网络 桥接即可。 注&#xff1a;如果使用IPV6&#xff0c;请选择"host"模式。 注&#xff1a;如…

0.5W 3KVDC 隔离单、双输出 DC/DC 电源模块——TPV-W5 3.3V, 5V,12V 15V系列

TPV-W5系列提供正负双输出和单输出&#xff0c;工业级环境温度&#xff0c;用于PCB安装的国际标准结构。此系列产品小巧&#xff0c;效率高&#xff0c;低输出纹波及能承受3000V以上的耐压&#xff0c;用于需要正负电压或单输出和高隔离电压的场合。封装有SIP和DIP可选。

markdown文件语法

标题 一级标题&#xff1a;# 标题名称 二级标题&#xff1a;## 标题名称 三级标题&#xff1a;### 标题名称 加粗 **markdown文件语法学习** 插入图片 方式1 ![图片描述](图片地址) 方式2 <figure><img src"图片地址" alt"图片描述"><fig…

Next.js 14 App Router引入 farmer-motion 初始化异常解决,顺带学点知识

前言 farmer-motion 是一个非常好用的动画库&#xff0c;当然用来做组件切换和路由切换过渡更不在话下。 记录一下&#xff0c;Next.js 14 App Router 下引入初始化异常的解决姿势&#xff0c;顺带扯一下 next.js 的知识点&#xff1b; 问题 过渡组件代码 我们拿 farmer-m…

机器学习-期末复习

本文的内容按照作者的课程考试要求书写&#xff0c;仅供复习参考。&#x1f337;&#x1f337;&#x1f337; 机器学习是一种人工智能&#xff08;AI&#xff09;的分支领域&#xff0c;它致力于开发能够通过数据学习和改进的算法和模型。简而言之&#xff0c;机器学习系统利用…

自动售卖团餐:借助智享直播AI实景无人直播系统,团餐自动售卖,无需人工参与,省时高效。

在科技飞速发展的今天&#xff0c;直播行业迎来了一场前所未有的变革。过去&#xff0c;传统的直播方式需要大量设备和人力投入&#xff0c;然而如今&#xff0c;一款名为"智享直播"的AI实景无人直播系统正以其简单、有趣的特性改变着这一局面。仅仅凭借一部手机&…

vue框架中的组件通信

vue框架中的组件通信 一.组件通信关系二.父子通信1.props 校验2.prop & data、单向数据流 二.非父子通信-event bus 事件总线三.非父子通信 (拓展) - provide & inject四.v-model简化父子通信代码五. .sync修饰符 一.组件通信关系 组件关系分类&#xff1a; 1.父子关系…

护眼台灯哪个牌子好?排名靠前的护眼台灯十大排名推荐!

护眼台灯哪个牌子好&#xff1f;目前&#xff0c;书客、松下、飞利浦等品牌备受关注。急需护眼的朋友&#xff0c;先不必焦虑。护眼台灯的选择&#xff0c;同样需要细致考虑&#xff0c;不是简单地亮起来就足够护眼。因为不当的光线可能对眼睛造成微妙而长远的伤害&#xff0c;…

黑龙江等保测评之 Linux 整改

1、核查空口令的用户的方法&#xff1a; 针对要核查的用户&#xff0c;使用&#xff1a;passwd –S 用户名&#xff0c;核查其状态等信息&#xff1a; #passwd –S root root PS 2021-11-11 0 99999 7 -1 (Password set, MD5 crypt.) 字段 示例 含义 1 Test 表示用户名 …