我的编程语言学习笔记

news2024/12/28 2:08:17

前言

作为一名编程初学者,我深知学习编程需要不断积累和记录。在这篇博客文章中,我将分享一些我在学习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.coloradmin.cn/o/893526.html

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

相关文章

19----C/C++之加密解密带空格字符串的读入

本文主要通过一道题目来讲解C语言相关的简单加密和解密&#xff0c;以及如何读入带有空格的字符串 小试牛刀 题目描述 在情报传递过程中&#xff0c;为了防止情报被截获&#xff0c;往往需要对情报用一定的方式加密。我们给出一种最简单的加密方法&#xff0c;对给定的一个字…

【爬虫练习之glidedsky】爬虫-基础1

题目 链接 爬虫的目标很简单&#xff0c;就是拿到想要的数据。 这里有一个网站&#xff0c;里面有一些数字。把这些数字的总和&#xff0c;输入到答案框里面&#xff0c;即可通过本关。 思路 找到调用接口 分析response 代码实现 import re import requestsurl http://www.…

冠达管理:印花税是什么意思?港股取消印花税是利好还是利空?

在股票市场上&#xff0c;投资者买卖股票需求交纳必定的手续费用&#xff0c;比如&#xff0c;佣钱费用、过户费用、印花税等等&#xff0c;那么&#xff0c;印花税是什么意思&#xff1f;港股撤销印花税是利好仍是利空&#xff1f;下面冠达管理为大家准备了相关内容&#xff0…

QT处理日志文件

由于实际生产需要&#xff0c;软件系统的运行&#xff0c;会产生大量的日志文件&#xff0c;有时候一天就能产生超过百万条log记录&#xff0c;那么为了能够处理日志文件&#xff0c;查询并且找到我们想要的报错信息&#xff0c;因此不得不考虑怎么实现&#xff0c;打开大日志文…

excel日期函数篇2

1、DATE(year,month,day)&#xff1a;根据年、月、日三个数值返回其表示的日期 2、DATEVALUE(date_text)&#xff1a;返回由文本字符串表示的日期的十进制数字 处理时间的时候&#xff0c;如果得到的是字符串格式&#xff0c;要将其转换为日期进行相关操作。excel函数里是使用文…

MinGW编译运行报错RTTI symbol not found for class ‘XXX‘

最近在调试程序时莫名的出现图中报错&#xff1a; 还遇到过for class QObject&#xff0c;在此记录一下&#xff0c;排查后发现&#xff0c;原因都是有资源被重复释放导致的。

intelij idea 2023 创建java web项目

1.点击New Project 2.创建项目名称为helloweb &#xff0c;jdk版本这里使用8&#xff0c;更高版本也不影响工程创建 点击create 3.新建的工程是空的&#xff0c;点击File-> Project Structure 4.点击Modules 5.点击加号&#xff0c;然后键盘输入web可以搜索到web模块&…

69 # 强制缓存的配置

强制缓存 强制缓存&#xff1a;以后的请求都不需要访问服务器&#xff0c;状态码为 200协商缓存&#xff1a;每次都判断一下&#xff0c;告诉是否需要找缓存&#xff0c;状态码为 304 默认强制缓存&#xff0c;不缓存首页&#xff08;如果已经断网&#xff0c;那这个页面应该…

Python三行代码实现json转Excel

最近重保&#xff0c;经常需要通过Excel上报威胁事件。安全设备的告警很多都是json格式的&#xff0c;就需要将json转成Excel。 用Python将json转成excel也就三行代码的事&#xff0c;先将json串导入形成字典对象&#xff0c;再通过pandas转成DataFrame直接输出excel。 实现如下…

windows电脑系统自带的画图工具如何实现自由拼图

1.首先选中你要拼接的第一张图片&#xff0c;右键选着编辑&#xff0c;会自动打开自带的画图工具 然后就是打开第一张图片&#xff0c;如下图所示 接着就是将画布托大&#xff0c;如下图所示。 然后点击选择&#xff0c;选择下面的空白区域&#xff0c;选着区域的范围要比准备拼…

智能楼宇综合布线实训室建设方案

一、楼宇智能综合布线实训室方案概述 楼宇智能综合布线实训室方案旨在为学生提供一个真实的学习和实践环境&#xff0c;以培养他们在楼宇智能综合布线领域的实际操作能力和技能。以下是一个概述&#xff1a; 1. 培养目标&#xff1a;培养学生在楼宇智能综合布线方面的综合能力…

耳朵小戴哪种耳机,佩戴舒适度最好的骨传导蓝牙耳机分享

亲爱的小伙伴们&#xff01;这些精心挑选的骨传导耳机绝对能给你带来全新的耳机体验。告别堵塞的耳道和细菌的困扰&#xff0c;让音乐与你完美融合&#xff01;不管你是运动爱好者、音乐发烧友还是生活达人&#xff0c;这些骨传导耳机都能满足你的需求。快行动起来&#xff0c;…

Freertos学习

一、概念 实时操作系统&#xff0c;要求一个高的实时性&#xff0c;就不是像在一个死循环中放俩函数了。而是创建俩任务&#xff0c;也叫做俩进程&#xff0c;高速的轮流执行&#xff0c;提高实时性。 二、创建任务

低代码开发ERP:精打细算,聚焦核心投入

企业数字化转型已经成为现代商业环境中的一项关键任务。如今&#xff0c;企业面临着日益激烈的竞争和不断变化的市场需求。在这样的背景下&#xff0c;数字化转型不仅是企业生存的必然选择&#xff0c;也是取得竞争优势和实现可持续发展的关键因素。 在数字化转型的过程中&…

前端对文件转换处理的一些常用方法

文章目录 0&#xff0c;前言1&#xff0c;将图片的url网络链接(http://) 转为base64格式2&#xff0c;将base64的图片数据转换为file文件3&#xff0c;将以base64的图片数据转换为Blob4&#xff0c;将file文件转化为base645&#xff0c;将file文件转换为Blob6&#xff0c;获取文…

postmarketOS

主步骤 #以下全程插入usb线 fastboot devices fastboot getvar all fastboot erase userdata fastboot erase system fastboot erase cachepmbootstrap init pmbootstrap installpmbootstrap flasher flash_rootfs --partition userdata pmbootstrap flasher flash_kernel…

盘点哪些好用的开放式耳机有哪些?开放式蓝牙耳机排行榜推荐

​你是否厌倦了传统耳机的束缚&#xff1f;是否渴望一种更为自由的听音体验&#xff1f;开放式耳机&#xff0c;将为你打开一扇全新的听觉大门。开放式耳机采用不入耳设计&#xff0c;让你在享受音乐的同时&#xff0c;保持对外界的感知&#xff0c;随时随地&#xff0c;尽享自…

图片展示 JAVA

利用Java中提供的 ImageIcon类和JLabel类加载与显示电脑路径中的图片&#xff0c;并最终展示在JFrame类窗口中。 代码&#xff1a; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel;public class Main extends JFrame {//继承父类Jframe…

智能画笔:如何利用AI绘画API打造独特的创作风格

在当今数字化时代&#xff0c;人工智能的迅猛发展正深刻地影响着各个领域&#xff0c;艺术创作也不例外。AI绘画 API 作为一种创新的工具&#xff0c;为艺术家提供了独特的机会&#xff0c;使他们能够在创作过程中借助人工智能技术&#xff0c;打造出独具个性的创作风格。本文将…

Linux系统中lib64文件夹下包含:动态链接库,静态链接库,内核模块等

lib64 目录对系统稳定运行有重要作用。 目录 lib64文件动态链接库静态链接库内核模块 lib64文件 lib64 文件夹存放主要是可被程序直接加载并使用的 64 位代码模块,包括动态库、静态库、内核模块等,这些文件对程序运行都至关重要。 在 Linux 系统中,lib64 文件夹通常用于存放…