我的编程语言学习笔记

前言

作为一名编程初学者,我深知学习编程需要不断积累和记录。在这篇博客文章中,我将分享一些我在学习C/C++编程语言过程中记录的常用代码、特定函数、复杂概念以及特定功能。希望能与大家一起切磋进步!

 

常用代码:


1. 输入输出操作:


   - 使用`cin`进行标准输入。
   - 使用`cout`进行标准输出。
   - 使用`scanf`进行格式化输入。
   - 使用`printf`进行格式化输出。

2. 控制结构:


   - `if-else`语句:根据条件执行不同的代码块。
   - `for`循环:重复执行特定次数的代码块。
   - `while`循环:当条件为真时,重复执行代码块。
   - `switch`语句:根据不同的值执行不同的代码块。

3.特定函数:


1. `strlen`函数:返回字符串的长度。
2. `strcpy`函数:将一个字符串复制到另一个字符串。
3. `strcmp`函数:比较两个字符串是否相等。
4. `atoi`函数:将字符串转换为整数。
5. `rand`函数:生成随机数。

4.复杂概念:


1. 指针:指向内存地址的变量,可以通过指针来访问和修改内存中的数据。
2. 动态内存分配:使用`new`关键字在运行时分配内存,使用`delete`关键字释放内存。

5. 特定功能:


1. 文件操作:打开、读取和写入文件。
2. 数据结构:如数组、链表、栈和队列等。
3. 排序算法:如冒泡排序、插入排序和快速排序等。

具体参考代码


当学习编程语言时,了解各种函数的具体用法是非常重要的。以下是对前面提到的一些函数的详细阐述和相应的参考实例:

1. `strlen`函数:


   - 作用:返回一个字符串的长度。
   - 用法示例:
     ```c++
     #include <iostream>
     #include <cstring>
     
     int main() {
         char str[] = "Hello World";
         int length = strlen(str);
         std::cout << "字符串长度为:" << length << std::endl;
         return 0;
     }
     ```

2. `strcpy`函数:


   - 作用:将一个字符串复制到另一个字符串。
   - 用法示例:
     ```c++
     #include <iostream>
     #include <cstring>
     
     int main() {
         char source[] = "Hello";
         char destination[20];
         strcpy(destination, source);
         std::cout << "复制后的字符串为:" << destination << std::endl;
         return 0;
     }
     ```

3. `strcmp`函数:


   - 作用:比较两个字符串是否相等。
   - 用法示例:
     ```c++
     #include <iostream>
     #include <cstring>
     
     int main() {
         char str1[] = "Hello";
         char str2[] = "World";
         int result = strcmp(str1, str2);
         if (result == 0) {
             std::cout << "字符串相等" << std::endl;
         } else {
             std::cout << "字符串不相等" << std::endl;
         }
         return 0;
     }
     ```

4. `atoi`函数:


   - 作用:将字符串转换为整数。
   - 用法示例:
     ```c++
     #include <iostream>
     #include <cstdlib>
     
     int main() {
         char str[] = "12345";
         int num = atoi(str);
         std::cout << "转换后的整数为:" << num << std::endl;
         return 0;
     }
     ```

5. `rand`函数:


   - 作用:生成随机数。
   - 用法示例:
     ```c++
     #include <iostream>
     #include <cstdlib>
     #include <ctime>
     
     int main() {
         srand(time(0));  // 设置种子,确保每次运行生成的随机数不同
         int randomNum = rand() % 100;  // 生成0到99之间的随机数
         std::cout << "生成的随机数为:" << randomNum << std::endl;
         return 0;
     }
     ```


 

6. 指针示例:


   ```c++
   #include <iostream>
   
   int main() {
       int num = 10;
       int* ptr = &num;  // 定义指向整数的指针,并将其指向变量num
       
       std::cout << "num的值为:" << num << std::endl;
       std::cout << "通过指针访问num的值:" << *ptr << std::endl;
       
       *ptr = 20;  // 修改指针所指向的变量的值
       std::cout << "修改后的num的值为:" << num << std::endl;
       
       return 0;
   }
   ```

7. 动态内存分配示例:


   ```c++
   #include <iostream>
   
   int main() {
       int size;
       std::cout << "请输入数组的大小:";
       std::cin >> size;
       
       int* dynamicArray = new int[size];  // 动态分配一个整数数组
   
       for (int i = 0; i < size; i++) {
           dynamicArray[i] = i + 1;
       }
   
       std::cout << "数组元素为:";
       for (int i = 0; i < size; i++) {
           std::cout << dynamicArray[i] << " ";
       }
       std::cout << std::endl;
   
       delete[] dynamicArray;  // 释放动态分配的内存
   
       return 0;
   }
   ```

8. 文件操作示例:


   ```c++
   #include <iostream>
   #include <fstream>
   
   int main() {
       std::ofstream file("data.txt");  // 创建一个名为"data.txt"的文件对象
   
       if (file.is_open()) {
           file << "Hello, World!\n";
           file << "This is a sample file.\n";
           file.close();
           std::cout << "文件写入完成." << std::endl;
       } else {
           std::cout << "无法打开文件." << std::endl;
       }
   
       return 0;
   }
   ```

9. 数据结构示例(链表):


   ```c++
   #include <iostream>
   
   struct Node {
       int data;
       Node* next;
   };
   
   int main() {
       Node* head = nullptr;
   
       // 创建链表
       for (int i = 1; i <= 5; i++) {
           Node* newNode = new Node;
           newNode->data = i;
           newNode->next = head;
           head = newNode;
       }
   
       // 遍历链表
       Node* currentNode = head;
       while (currentNode != nullptr) {
           std::cout << currentNode->data << " ";
           currentNode = currentNode->next;
       }
       std::cout << std::endl;
   
       // 释放链表的内存
       currentNode = head;
       while (currentNode != nullptr) {
           Node* temp = currentNode;
           currentNode = currentNode->next;
           delete temp;
       }
   
       return 0;
   }
   ```

10. 排序算法示例(冒泡排序):


   ```c++
   #include <iostream>
   
   void bubbleSort(int arr[], int size) {
       for (int i = 0; i < size - 1; i++) {
           for (int j = 0; j < size - i - 1; j++) {
               if (arr[j] > arr[j + 1]) {
                   // 交换元素
                   int temp = arr[j];
                   arr[j] = arr[j + 1];
                   arr[j + 1] = temp;
               }
           }
       }
   }
   
   int main() {
       int arr[] = {5, 2, 8, 12, 1};
       int size = sizeof(arr) / sizeof(arr[0]);
   
       bubbleSort(arr, size);
   
       std::cout << "排序后的数组为:";
       for (int i = 0; i < size; i++) {
           std::cout << arr[i] << " ";
       }
       std::cout << std::endl;
   
       return 0;
   }
   ```

上述示例代码仅作为参考,具体的使用方法可能会因编程环境或需求而略有不同。学习时建议阅读相关的文档和教程,并进行实践来加深对函数的理解和掌握。

总结

以上仅是我在学习C/C++编程语言过程中记录的一些内容,还有很多其他的知识点和技巧等待我们去学习和探索。编程是一个不断进步和成长的过程,希望大家能够保持学习的热情,不断积累经验,提升自己的编程能力。

如果你有任何问题或者想要分享你自己的学习笔记,请在下方留言,让我们一起交流和进步吧!

欢迎点赞收藏

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

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

相关文章

Algorithem Review 5.2 图论

网络流 设源点为 s s s&#xff0c;汇点为 t t t&#xff0c;每条边 e e e 的流量上限为 c ( e ) c(e) c(e)&#xff0c;流量为 f ( e ) f(e) f(e)。割 指对于某一顶点集合 P ⊂ V P \subset V P⊂V&#xff0c;从 P P P 出发指向 P P P 外部的那些原图中的边的集合&a…

【Docker报错】docker拉取镜像时报错:no such host

报错信息 [rootSoft soft]# docker pull mysql Using default tag: latest Error response from daemon: Head "https://registry-1.docker.io/v2/library/mysql/manifests/latest": dial tcp: lookup registry-1.docker.io on 192.168.80.2:53: no such host解决方法…

【【典型电路设计之片内存储器的设计之RAM的Verilog HDL描述一】】

典型电路设计之片内存储器的设计之RAM的Verilog HDL描述一 RAM是随机存储器&#xff0c;存储单元的内容可按需随意取出或存入。这种存储器在断电后将丢失所有数据&#xff0c;一般用来存储一些短时间内使用的程序和数据。 其内部结构如下图所示&#xff1a; 例&#xff1a;用…

docker简介

目录 docker简介 1.什么是docker 2.基本结构 3.docker优势 4.docker改变了什么 5.docker三大基本概念 1.docker镜像 2.容器 3.仓库 docker简介 1.什么是docker Docker 是一个开源项目&#xff0c; 诞生于 2013 年初&#xff0c;最初是 dotCloud 公司内部的一个业余项目。…

matlab保存图片

仅作为记录&#xff0c;大佬请跳过。 文章目录 用界面中的“另存为”用saveas 用界面中的“另存为” 即可。 参考 感谢大佬博主文章&#xff1a;传送门 用saveas 必须在编辑器中的plot之后用saveas&#xff08;也就是不能在命令行中单独使用——比如在编辑器中plot&#xf…

GuLi商城-前端基础Vue-指令-单向绑定双向绑定

什么是指令? 指令 (Directives) 是带有 v- 前缀的特殊特性。 指令特性的预期值是:单个 JavaScript 表达式。 指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于DOM 例如我们在入门案例中的 v-on&#xff0c;代表绑定事…

Docker+Selenium Grid搭建自动化测试平台

安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce -y Create a Docker Network docker network create grid 下载镜像 hu…

蔡司关注全民运动眼健康:与蔡司智锐镜片KEEP住视力健康

众所周知&#xff0c;运动是对我们身体最大的投资&#xff0c;但是对于视力有问题的消费者来说&#xff0c;不合适的眼镜无疑是运动路上的绊脚石&#xff0c;跑步运动时眼镜总是往下掉&#xff0c;不仅没有相对稳定的视野&#xff0c;还特别没安全感&#xff0c;由此可见一副优…

【云原生、k8s】Calico网络策略

第四阶段 时 间&#xff1a;2023年8月17日 参加人&#xff1a;全班人员 内 容&#xff1a; Calico网络策略 目录 一、前提配置 二、Calico网络策略基础 1、创建服务 2、启用网络隔离 3、测试网络隔离 4、允许通过网络策略进行访问 三、Calico网络策略进阶 1、创…

【数据结构OJ题】环形链表II

原题链接&#xff1a;https://leetcode.cn/problems/linked-list-cycle-ii/description/ 1. 题目描述 2. 思路分析 如果链表存在环&#xff0c;则fast和slow会在环内相遇&#xff0c;定义相遇点到入口点的距离为X&#xff0c;定义环的长度为C&#xff0c;定义头到入口的距离为…

CentOS安装Docker(超详细)

文章目录 1.CentOS安装Docker1.1.卸载&#xff08;可选&#xff09;1.2.安装docker1.3.启动docker1.4.配置镜像加速 2.CentOS安装DockerCompose2.1.下载2.2.修改文件权限2.3.Base自动补全命令&#xff1a; 3.Docker镜像仓库3.1.简化版镜像仓库3.2.带有图形化界面版本3.3.配置Do…

交流充电桩控制主板的优点

你是否曾经担心过充电桩可能会对你的电动车电池造成危害?让我们来探讨一下交流充电桩主板的优点&#xff0c;让你安心充电。 首先&#xff0c;交流充电桩主板采用了高安全性的电源设计&#xff0c;能够有效地保护电池免受电流、电压过高的危害&#xff0c;确保电池的安全使用。…

基于X86六轮差速移动机器人运动控制器设计与实现(二)规划控制算法

带输入约束的 MPC 路径跟踪控制 MPC 算法是一种基于控制对象模型的控制方法&#xff0c;其优势在于在控制中考虑了 系统的多种物理约束&#xff0c;同时基于模型与当前机器人的反馈信息预估出未来机器人 位姿信息的处理方法可以解决控制迟滞的问题。 4.1 MPC 路径跟踪控…

Docker部署ES服务,canal全量同步的时候内存爆炸,ES/Canal Adapter自动关闭,CPU100%

文章目录 问题解决方案1. 对ES的限制2. 对Canal-Adapter的限制 问题 使用canal-adapter全量同步&#xff08;参考Canal Adapter1.1.5版本API操作服务&#xff0c;手动同步数据&#xff08;4&#xff09;&#xff09;的时候 小批量数据可以正常运行&#xff08;几千条&#xf…

在 SwiftUI 中创建一个环形 Slider

文章目录 前言初始化环形轮廓将进度值和拇指位置绑定添加触摸手势为不同的坐标值设置滑块位置总结 前言 Slider 控件是一种允许用户从一系列值中选择一个值的 UI 控件。在 SwiftUI 中&#xff0c;它通常呈现为直线上的拇指选择器。有时将这种类型的选择器呈现为一个圆圈&#…

分析Flink,源和算子并行度不一致时,运行一段时间后,看似不再继续消费的问题,提供解决思路。

文章目录 背景分析 问题来了比较一开始的情况解决方式 背景 之前有分析过一次类似问题&#xff0c;最终结论是在keyby之后&#xff0c;其中有一个key数量特别庞大&#xff0c;导致对应的subtask压力过大&#xff0c;进而使得整个job不再继续运作。在这个问题解决之后&#xff…

SpringBoot | RestTemplate异常处理器ErrorHandler使用详解

关注wx&#xff1a;CodingTechWork 引言 在代码开发过程中&#xff0c;发现很多地方通过RestTemplate调用了第三方接口&#xff0c;而第三方接口需要根据某些状态码或者异常进行重试调用&#xff0c;此时&#xff0c;要么在每个调用的地方进行异常捕获&#xff0c;然后重试&am…

手撕单链表

目录 链表的概念和结构 单链表的实现 申请新结点 打印 尾插 头插 尾删 头删 ​编辑 查找 在pos位置前插入元素 在pos位置后插入元素 删除pos位置的元素 删除pos位置之后的位置的元素​编辑 完整代码 SListNode.h SListNode.c 链表的概念和结构 链表是一种物理存储…

Python“牵手”1688商品评论数据采集方法,1688API申请指南

1688平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c;1688API接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问1688平台的数据&#xff0c;包括商品信息、店铺信息、物流信息等&#xff0c;从而实现1688平台…

【网络】传输层——TCP(滑动窗口流量控制拥塞控制延迟应答捎带应答)

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 上篇文章对TCP可靠性机制讲解了一部分&#xff0c;这篇文章接着继续讲解。 &#x1f3a8;滑动窗口 在…