Linux C语言进阶

news2024/12/25 2:04:34

一、二维数组的定义和存储

一、二维数组的定义

1、二维数组的应用:图、方阵

2、数组元素的存放顺序:内存是一维的,二维数组:按行优先

a[1]:表示第一行,也表示a[1][]的所有元素

二、二维数组的初始化、遍历

1、元素的初始化

1、不是按顺序存放,部分初始化

 2、按顺序存放

3、二维数组只能省略行,不能省略列

1、打印杨辉三角形

 2、打印数组中的最大值,行,列

三、多维数组

二、字符数组和字符串

一、一维字符数组和字符串

1、字符数组的用法

1)“abc”='a''b''c''\0'

2)逐个字符赋值

 

3)0=\0=NULL

2、字符串的用法

4)以字符串的形式赋值

5)用%s打印数组中存放的字符串

这种情况只适合打印以\0结尾的字符串,单个字符赋值有可能出现错误

二、二维字符数组和字符串

1、在赋值的时候,列赋值比要用的大一些,所有的输入都可以用字符串来表示(留出\0的位置,简化输入)

字符串存储-------二维数组!!!

2、打印

1)打印字符串

2)用最原始的数组的形式

3、逆序输出字符串

1)字符串不变,逆序输出

2)字符串倒叙

4)gets和scanf的区别

gets可以取空格,scanf不可以

三、字符串处理函数(一)

man+函数名:查看函数手册

一、strlen函数(只数有效字符,不含\0)

二、strcpy函数--字符串拷贝函数

拷贝源码:

三、strcat函数---字符串连接函数

拷贝加连接

四、strcmp-----字符串比较函数

从左到右逐个字符,直到不同字符。

如果完全相同,字符串较短的比较小。

四、字符串处理函数(二)

man isalpha:

一、strncpy---复制指定长度的字符串

二、strncat---附加指定长度字符串

三、strncmp---只比较前几个字母

四、strncasecmp---忽略大小写比较字符串的大小

五、strchr---在字符串中查找指定字符,返回第一次出现的地址

strrchr---在字符串中查找指定字符,返回最后一次出现的地址

 

六、strstr---查找字符串

printf("%d",strstr(s1,s2)-s1);

//显示查找的字符串首字符的位次

在命令行界面也可以查找字符串

七、

八、toupper---小写转大写

tolower---大写转小写

五、指针的基本用法

一、地址和变量

1、bit:一位二进制

byte:一个字节=8bit

2、什么是指针?

内存的地址是指针

什么是指针变量?

存放地址的变量称为指针变量

3、指针变量的声明

4、变量的初始化

5、一个8位的16进制数是多少字节?

一位16进制对应的是4位二进制数,8个16进制对应4个8bit,所以对应4字节。

6、指针的目标:指针指向的内存区域中的数据成为指针的目标。

如果指针指向一个变量的内存空间,这个变量称为指针的目标变量。简称为指针的目标。

7、取目标地址的内容*px=*(&x)=x

8、

9、指针赋值

1)把变量地址赋值给指针

2)指针变量之间互相赋值

3)把数组地址赋给指针变量

10、

sizeof(p):存储指针变量p所占的内存

11、指针占几个字节

六、指针的运算

1、指针运算实际上就是地址运算,只能进行赋值运算、算数运算和关系运算

2、地址加一,表示的是这个数据类型的地址变量的地址加1,因此不同数据类型的地址变量相加减是没有意义的。

3、相同类型的指针相减:px-py表示的也是中间间隔的数据个数。

扭曲的式子:初学时指针类型和目标变量的数据类型严格保持一致。

二、指针的关系运算

1、指针的关系运算表示他们指向地址之间的关系

2、指针与整数变量之间的关系运算没有意义。

3、指针与0进行关系运算,判断指针是否为空。

七、指针与数组

1、指针与一维数组

2、x[i],*(p+i),*(x+i),p[i]表示的值相同

x+i:数组名+i

但是x++是错误的

例子:用指针完成数组倒置

3、区别x[1]和p[1]

八、指针与二维数组

一、一级指针便利二维数组

二维数组:

*(p+1):移动一个数据

*(a+1):移动一行

二、指针与二维数组

1、二维数组名常被用做行地址

三、行指针

1、行指针又称数组指针,存储行地址的指针

2、行指针的声明

可以理解为指针的步长是一行

int (*p)[列]

p=a

p[1][1]=a[1][1]

九、字符指针与字符串

一、字符指针与字符串上

1、字符指针是把字符串的首地址赋给指针

2、赋值方式

1)先定义字符串,指针指向字符串数组的首地址

2)用指针直接去定义字符串

此时字符串相当于一个全局变量,不能再用指针修改字符串的值

3)实现字符串链接函数

十、指针数组

一、指针数组的概念和用法

1、指针数组

2、指针数组的初始化

二、用一维指针数组访问二维数组

三、指针数组的应用-处理二维数组

二级指针

十一、多级指针、void指针以及const

多级指针、void指针以及const

1、

三、多级指针和指针数组

1、示例

2、多级指针

二级指针可以管理一级指针数组

四、void指针的使用

1、void指针的初始化

void *p;

2、void指针不确定数据类型,可以通过强制类型转换让变量指向任何数据类型的变量,在强制转换之前,不能进行任何指针的算数运算

赋值时可以不转换,但使用时(打印)必须转换

3、用void指针遍历一维数组

五、const变量、const指针

1、const变量,常量化变量,变量的值不能被修改了

1)const int *p

2)int const *p

3)const int *const *p

只能const int *const p=&a;

六、main函数是否可以带参数(涉及到const指针)

注意事项

常用命令

1、man isalpha

2、EOF

1)end of file,即文件结束符,EOF的值是-1。在文本文件中才能使用EOF作为结束符。

2)在使用scanf输入时,如果输入的数据正确,则scanf返回一个正整数,如果输入的是<ctrl+Z>组合键,则表示返回EOF,即-1。

3、Null相当于一个宏定义

#define NULL 0

4、C语言中,只有全局变量、static是放在静态区的,只有在程序结束的时候才释放内存,指针放在栈当中

5、

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

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

相关文章

Docker swarm集群之compose启动多服务

Docker swarm集群之compose启动多服务 本篇文章是在搭建过Swarm集群基础上进行的&#xff0c;如未搭建过请移步 &#xff1a; [Docker swarm 集群搭建 - Wanwan’s Blog (wanwancloud.cn)] 环境信息 主机名IP主机配置master10.10.10.32c2gnode0110.10.10.42c2gnode0210.10.…

基于mysql的请假系统,java/springboot/jsp/javaweb/tomcat

系统分为 学生/辅导员/超级管理员 登录注册、修改头像、个人资料。 学生登录可以提交请假申请。 辅导员登录可以管理学生信息、管理班级信息、管理课程信息。 超级管理员登陆可以管理用户信息、管理学生信息、管理辅导员信息、管理班级信息、管理二级学院信息、管理课程信息、…

【python图像处理】模糊图像

模糊前 模糊后 模糊 import os from PIL import Image, ImageFilterfacesPath face # 图片文件夹路径 faces os.listdir(facesPath) for face in faces:facePath os.path.join(facesPath, face)image Image.open(facePath)blurred_image image.filter(ImageFilter.BLU…

【ARMv8 SIMD和浮点指令编程】NEON 存储指令——如何将数据从寄存器存储到内存?

和加载指令一样,NEON 有一系列的存储指令。比如 ST1、ST2、ST3、ST4。 1 ST1 (multiple structures) 从一个、两个、三个或四个寄存器存储多个单元素结构。该指令将元素从一个、两个、三个或四个 SIMD&FP 寄存器存储到内存,无需交错。每个寄存器的每个元素都被存储。 …

由于找不到emp.dll无法继续执行此代码问题的五个解决方法

在玩游戏的过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中最常见的就是“找不到emp.dll”&#xff0c;这个问题我们的游戏无法启动运行。本文将分享我在解决这一问题过程中的方法&#xff0c;希望能对遇到类似问题的玩家有所帮助。 emp.dll是一个动态链接库文件…

1820_ChibiOS中的同步消息

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 看到这里提到的这个模型&#xff0c;我在想是不是我一直没有搞定的多核可以利用这个机制来解决。如果是多核&#xff0c;ChibiOS的这种机制是否依…

vue3从基础到入门(一)

文章目录 简介提升使用创建脚手架vite 常用Composition APIsetuprefreactive函数响应式vue2响应式vue3实现响应式 reactive对比ref注意计算属性computed函数 监视watch函数watchEffect函数 生命周期hook函数toRef 简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c…

JDK API Diff Report Generator-Java版本对比工具

今天查资料找到了除了EMT4J之外&#xff0c;其他可以用于Java版本迁移的工具。 这里简单的记录一下。 非Java er&#xff0c;有不同意见欢迎评论区交流。 JDK API Diff Report Generator JDK API Diff是一个用于比较不同Java版本API区别的工具。github地址在这里。 例如&am…

10.28总结

目录 一.发布作业 二.写作业 三.批改作业 一.发布作业 点击简答题时———listvie<String>题目列表会新增一个题目 保存该题时———— 获取TextArea的文本,为list当前选中的对象赋值 发布日期不能为过往日期&#xff0c;截止日期不能晚于发布日期。——为发布日期设置…

测试用例基础知识

目录 什么是测试用例&#xff1f; 测试用例格式 测试用例编写 测试用例的设计方法 等价类 边界值 判定表 因果图 流程图 场景法 错误推测法 什么是测试用例&#xff1f; 测试用例 (Test Case)是指对一项特定的软件产品进行测试任务的描述&#xff0c;体现测试方案、…

maven环境变量,安装源,本地仓库配置

1. maven环境变量 我这里用的是idea自带的maven 数值为&#xff1a; D:\software\computer_software\java\IDEAJ\IDEAJ2021.2.1\IntelliJ IDEA 2021.2.1\plugins\maven\lib\maven3\bin 2. 安装源更换为阿里云&#xff08;我不知道清华源是什么网址&#xff0c;网上也没查到&am…

人工智能基础_机器学习007_高斯分布_概率计算_最小二乘法推导_得出损失函数---人工智能工作笔记0047

这个不分也是挺难的,但是之前有详细的,解释了,之前的文章中有, 那么这里会简单提一下,然后,继续向下学习 首先我们要知道高斯分布,也就是,正太分布, 这个可以预测x在多少的时候,概率最大 要知道在概率分布这个,高斯分布公式中,u代表平均值,然后西格玛代表标准差,知道了 这两个…

redux connect组件在手工传入参数时报错

redux使用connect创建一个高阶组件时后&#xff0c;如果手工给该组件传入参数时会因参数不同会报错&#xff0c;此时可以如下处理&#xff1a;

流量攻击:如何有效利用网络漏洞

在网络世界中&#xff0c;攻击者采用各种方法来试图利用网络漏洞来实施攻击。这些攻击可能导致目标网站宕机、性能下降&#xff0c;或者更严重的数据泄露。在本文中&#xff0c;我们将从攻击者的角度探讨如何有效地利用流量攻击&#xff0c;以便更好地理解如何防范这些攻击。 利…

二叉树的后续遍历(迭代法)

迭代法实现二叉树的后续遍历 1、递归版本 public static void dfs(TreeNode root){if(rootnull){return;}if(root.left!null)dfs(root.left);if(root.right!null)dfs(root.right);System.out.println(root.val); }从递归版本可以看出我们第一步需要遍历完所有的左节点 这里我…

电脑提示找不到msvcp140.dll无法继续执行代码的4种解决办法

今天我想和大家分享的是关于找不到msvcp140.dll无法继续执行代码的4种解决办法。在我们日常的教学和工作中&#xff0c;有时候会遇到这样的问题&#xff0c;让我们感到困惑和无奈。那么&#xff0c;msvcp140.dll究竟是什么&#xff1f;为什么会丢失呢&#xff1f;接下来&#x…

【java学习—十】异常(1)

文章目录 1. 概念1.1. 前言1.2. java中的异常 2. java运行时异常举例3. 总结 1. 概念 1.1. 前言 任何一种程序设计语言设计的程序在运行时都有可能出现错误&#xff0c;例如除数为 0 &#xff0c;数组下标越界&#xff0c;要读写的文件不存在等等。     捕获错误最理想的是…

elementUI el-collapse 自定义折叠面板icon 和 样式 或文字展开收起

: :v-deep{.el-collapse-item__arrow {width: 40px;}.el-icon-arrow-right:before {content: "展开";font-size: 15px;font-family: heiti;color: #2295ff;font-weight: bold;}.el-collapse-item__arrow.is-active {transform: none;}.el-collapse-item__arrow.is-a…

在VMware Workstation Pro安装win7

1.下载 地址 2.创建虚拟机 3.选择需要安装的系统镜像 4.选择系统版本 通常情况下选择 Windows 7 Ultimate 旗舰版&#xff0c;点击下一步&#xff0c;若提示产品密钥&#xff0c;则忽略 5.虚拟机命名 虚拟机保存位置保持默认即可&#xff0c;如果有需求可以更换位置 6…