c语言数组复习

news2024/11/26 4:40:32

1、一维数组

----------(1)、键盘输入 10 个数,求最大值和最小值(最简单的方法)

在这里插入图片描述
在这里插入图片描述

----------(2)、数组的逆置

#include<stdio.h>
void test01() {
	int arr[10] = { 0 };
	int n = sizeof(arr) / sizeof(arr[0]);
	int i;
	printf("请输入 %d 个数:", n);
	for (i = 0; i < n; i++) {
		scanf_s("%d", &arr[i]);
	}
	int low = 0;
	int high = n - 1;
	int temp; //中间变量
	while (low < high) {       //交换数组
		temp = arr[low];
		arr[low] = arr[high];
		arr[high] = temp;
		low++;
		high--;
	}
	printf("交换后的数组打印如下:");
	for (i = 0; i < n; i++) {
		printf("%d\t", arr[i]);
	}
}
int main() {
	test01();
	return 0;
}

在这里插入图片描述

2、二维数组

----------(1)、二维数组概述

二维数组本身就是数组的数组(站在编译器的角度分析问题)

int arr[3][4]                    

在这里插入图片描述

二维数组的总大小:行数 * 列数 * 每个元素的大小
数组的总大小:sizeof(arr)
行数:sizeof(arr)/sizeof(arr[0])                                   //总大小除以每一行的大小就是行数,sizeof(arr[0]) 每一行的大小,arr[0]行的数组名
列数:sizeof(arr[0)/sizeof(arr[0][0])                              //一行的大小,除以每一个元素的大小,就是列数

----------(2)、二维数值数组的初始化

------------------、分段初始化

//完全初始化
int arr[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12}};
//如果完全初始化。,可以省略行数
int arr[][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12}};
//部分初始化
int arr[3][4] = { {1,2},{5,6},{9,10,11}};

------------------、连续初始化

//完全初始化
int arr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
//如果完全初始化。,可以省略行数
int arr[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
//部分初始化
int arr[3][4] = {1,2,5,6,9,10,11};

3、一维字符数组

----------(1)、一维字符数组初始化

------------------、追个元素初始化(不推荐)

int arr[5] = {'h','e','l','l','o'};   //使用这种方式系统在编译的时候不会自动加'\0'

------------------、使用字符串的方式初始化一维数组(推荐)

int arr[6] = "hello";       //使用这种方式,数组的长度一定要大于字符串的长度,因为使用这种方式系统会自动在字符串后面加入 '\0',若数组的长度等于字符串的长度,那么编译的时候系统自动加入 '\0'会导致溢出

在这里插入图片描述

----------(2)、字符数组遍历

------------------、使用 for 循环遍历(逐个字符遍历)

int arr[6] = "hello";       //使用这种方式,数组的长度一定要大于字符串的长度,因为使用这种方式系统会自动在字符串后面加入 '\0',若数组的长度等于字符串的长度,那么编译的时候系统自动加入 '\0'会导致溢出
int i;
for(i = 0;i<n;i++){
    printf("%c",arr[i]);
}

------------------、直接使用 %s 输出字符串,需要字符串的首元地址,遇见 '\0’会停止

int arr[6] = "hello";       //使用这种方式,数组的长度一定要大于字符串的长度,因为使用这种方式系统会自动在字符串后面加入 '\0',若数组的长度等于字符串的长度,那么编译的时候系统自动加入 '\0'会导致溢出
printf("%s",arr);    //arr是数组名,代表的是首元地址,一个一个输出直到遇见 '\0'停止

------------------、使用printf(“%s”,arr)输出可以int arr[5] = {‘h’,‘e’,‘l’,‘l’,‘o’}; 定义的数组嘛?(面试问题)

不会,会输出乱码,或者不输出,因为 printf(“%s”,arr) 输出的时候直到遇见 '\0’就会停止,但是若是使用printf(“%s”,arr)输出int arr[5] = {‘h’,‘e’,‘l’,‘l’,‘o’}; 由于int arr[5] = {‘h’,‘e’,‘l’,‘l’,‘o’}; 中系统不会自动加入 ‘\0’,所以使用printf(“%s”,arr)自然不会遇见 ‘\0’,所以使用 %s容易造成非法访问,自然也打印不出,或者出现乱码!!!!!!!!!!!!!!!!

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

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

相关文章

【IoT】硬件选型:如何正确区分电子线的端子型号?

问题提出 笔者最近负责的一款重力传感器由于没有端子&#xff0c;需要在生产时自己压端子&#xff0c;这个时候就会涉及端子的选择。 端子介绍 一般来说&#xff0c;端子有多种不同的型号&#xff0c;在使用的时候&#xff0c;你必须要注意到每种型号之间的差别。 端子一般有XH…

权限管理---尚硅谷

1.项目基础 2.定义统一返回结果对象 3.Nodejs 4.前端内容编写 5.菜单详情 6.SpringSecurity权限管理 7.添加登录日志 8.操作日志 9.后端打包 10.前端打包 11.动态sql日期的判断 项目基础 定义统一返回结果对象定义全局统一返回结果类 import lombok.Data;/*** 全局统一返回结果…

小程序容器技术助力突破智能汽车瓶颈

作为一种综合系统&#xff0c;智能车辆集环境感知、规划决策、多等级辅助驾驶等功能于一体。近年来&#xff0c;智能车辆已经成为世界车辆工程领域研究的热点和汽车工业增长的新动力&#xff0c;很多发达国家都将其纳入到各自重点发展的智能交通系统当中。在共享经济兴起和汽车…

如何写好JS

本节课从实践维度解读在实际编码过程中何种类型的 JavaScript 代码称之为“好代码”&#xff0c;并从 JS 出发&#xff0c;总结其他语言编码可遵循的共性原则&#xff0c;由浅入深&#xff0c;其三大原则是&#xff1a; 各司其职——html&#xff0c;css&#xff0c;js分离组件…

通达信接口QQ是什么端口?

可以将通达信接口QQ视为使用通达信市场软件作为数据库&#xff0c;然后将信息整合为策略的前提&#xff0c;所有行为都是自动化的。通达信接口的优势在于交易策略是事先制定的。是否基于市场波动&#xff0c;不受个人情绪的影响&#xff0c;可以大大降低个人原因造成的错误。 …

[ACTF2020 新生赛]BackupFile

目录 信息收集 思路 构造payload 知识补充 信息收集 从题目来看应该是让扫描备份文件(backupfile) 进入页面就一句话 Try to find out source file! 先用dirbuster模糊扫描一下目录 常见的如下 index.phps index.php.swp index.php.swo index.php.php~ index.php.bak ind…

有哪些数据恢复软件?13个好用的数据恢复工具分享

个人编辑开发了此资源&#xff0c;以帮助购买者寻找最好的免费数据恢复软件来满足其组织的需求。选择合适的供应商和工具可能是一个复杂的过程&#xff0c;需要深入研究&#xff0c;而且往往不仅仅取决于工具及其技术能力。为了让您的搜索更轻松一些&#xff0c;我们在一个地方…

【C++】stack和queue的使用

文章目录Stackstack容器的定义方式:接口函数queuequeue容器的定义方式接口函数栈OJ题目最小栈栈的压入,弹出序列逆波兰表达式求值(后缀表达式)中缀表达式->后缀表达式用两个栈实现队列队列OJ题用队列实现栈使用两个队列实现栈使用一个队列实现栈二叉树的层序遍历I二叉树的层…

k8s之挂载本地磁盘到POD中

写在前面 本文一起看下如何挂载本地的磁盘到POD中。 1&#xff1a;都需要哪些API对象 现实世界中的存储设备有非常非常多的种类&#xff0c;如本文要分析的计算机磁盘&#xff0c;还包括NFS(一种网络磁盘存储协议)&#xff0c;Ceph&#xff08;一种分布式的文件存储系统&…

Web测试的各个测试点

1.什么是Web测试&#xff1f; Web测试测试Web或Web应用程序的潜在错误。它是在上线前对基于网络的应用程序进行完整的测试。 UI测试 功能测试 数据库测试 性能测试 兼容性测试 安全测试 自动化测试 2.WEB测试主要测试场景 1.UI测试 界面是否美观&#xff0c;风格、字体、…

【青训营】Go的并发编程

本文章整理自——字节跳动青年训练营&#xff08;第五届&#xff09;后端组 1.线程和协程 操作系统中有三个重要的概念&#xff0c;分别是进程、线程和协程。其中进程和线程的区别请移步操作系统专栏&#xff0c;现在主要叙述线程和协程的区别。 简单来说&#xff0c;协程又称…

看我们网络故障分析系统如何发现系统500报错

背景 汽车配件电子图册系统是某汽车集团的重要业务系统。业务部门反映&#xff0c;汽车配件电子图册调用图纸时&#xff0c;出现访问慢现象。 汽车集团总部已部署NetInside流量分析系统&#xff0c;使用流量分析系统提供实时和历史原始流量。本次分析重点针对汽车配件电子图册…

Python学习笔记-网络爬虫基础

一、网络爬虫概述网络爬虫概述网络爬虫又称网络蜘蛛、网络机器人&#xff0c;在某社区中经常被称为网页追逐者。网络爬虫可以按照指定规则自动浏览或抓取网络中的信息&#xff0c;python可以很轻松的编写爬虫程序或脚本。网络爬虫基本工作流程&#xff1a;网络爬虫的常用技术2.…

【QT5 实现“上图下文”,带图标的按键样式-toolbutton-学习笔记-记录-基础样例】实现方式之一

【QT5 实现“上图下文”&#xff0c;带图标的按键样式-toolbutton-学习笔记-记录-基础样例】1、前言2、实验环境3、效果展示4、实验步骤第一步&#xff1a;新建工程-并运行。第二步&#xff1a;上网找图标文件第四步&#xff1a;&#xff08;非必须&#xff09;为了对比图标不同…

23种设计模式(三)——观察者模式【组件协作】

文章目录意图什么时候使用观察者使用观察者模式也有两个重点问题要解决&#xff1a;1&#xff09;广播链的问题2&#xff09;异步处理问题真实世界类比观察者模式的实现观察者模式的优缺点亦称&#xff1a;事件订阅者、监听者、Event-Subscriber、Listener、Observer 意图 在许…

mybatis之动态SQL测试环境的搭建以及if语句的使用

动态SQL&#xff1a; 动态 SQL 是 MyBatis 的强大特性之一&#xff0c;如果你使用过 JDBC 或其它类似的框架&#xff0c;你应该能理解根据不同条件拼接 SQL 语句有多痛苦&#xff0c;例如拼接时要确保不能忘记添加必要的空格&#xff0c;还要注意去掉列表最后一个列名的逗号&a…

Vue CLI

介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统&#xff0c;提供&#xff1a; 通过 vue/cli 实现的交互式的项目脚手架。 通过 vue/cli vue/cli-service-global实现的零配置原型开发。 一个运行时依赖 (vue/cli-service)&#xff0c;该依赖&#xff1a; 可升级&a…

腾讯安全发布《2022年DDoS攻击威胁报告》:DDoS威胁4年持续增长

随着全球数字化蓬勃发展&#xff0c;互联网的应用范围不断扩大&#xff0c;并逐渐普及到各行各业的生产、管理、运营等方面&#xff0c;网络设备可用带宽伴随应用需求的增加而增加&#xff0c;方便了企业业务开展的同时也扩大了安全威胁面&#xff0c;引来黑产的觊觎。DDoS攻击…

Java使用流去除集合中某个字段为空的对象

文章目录0 写在前面1 情景复刻2 解决方案3 写在最后0 写在前面 最近写了一些业务逻辑&#xff0c;调试的时候总会报空指针异常。 Java中空指针异常是危险恐怖分子&#xff0c;最好不要碰见他。所以有些时候&#xff0c;处理集合中的数据时&#xff0c;特定情况下需要略过一些数…

十五天学会Autodesk Inventor,看完这一系列就够了(二),软件界面

众所周知&#xff0c;Autocad是一款用于二维绘图、详细绘制、设计文档和基本三维设计&#xff0c;现已经成为国际上广为流行的绘图工具。Autodesk Inventor软件也是美国AutoDesk公司推出的三维可视化实体模拟软件。因为很多人都熟悉Autocad&#xff0c;所以再学习Inventor&…