鹏哥c语言数组(初阶数组)

前言:

对应c语言视频54集

内容:

一维数组的创建

数组是一组相同元素的集合,

数组的创建方式

type_t就是数组的元素类型,const_n是一个常量表达式,用来指定数组的大小

c99标准之前的,数组的大小必须是常量或常量表达式

c99之后可以是变量,,为了支持变长数组

这样也可以

#include <stdio.h>
{double data2[15+5]return 0;} 

数组溢出,也在字符串就是后面会自己加 \0,但是现在因为输入了10个字符串,就是不能输入\0,字符的话,就是大括号,他是自动加\0,就是加了10个字符,后面还是会有\0的

int main()
{//不完全初始化,剩余的元素默认初始化大小为0int arr[10] ={1,2,3,4,5};//这里后面,就是会溢出,但是devc++,不会溢出 char ch1[10] = "abcdeghij";printf("%s", ch1);}

[ ]就是下标引用操作符

就是数组的下标,从0开始计算的

可以打印数组的每个元素的地址

二、二维数组

//二维数组, 
int main()
{//二维数组的创建 int arr1[3][4];//二维数组的初始化,就是三行,每一行有四列 int arr1[3][4] = {1,2,3,4,2,3,4,5,6,3,4,5,6,7}; //划分区域int arr2[3][4] = {{1,2},{2,3},{3,4}}; //可以省略行,但是不能省略列int  arr3[][4] = {{1,2,3,5},{2,3}}int arr2[5][8];return 0;} 

冒泡排序算法

算法核心,相邻的两个数进行排序

错误实例

//冒泡排序算法的核心思想
//  两个相邻的元素进行比较
void bubble_sort(int arr[], int zs)
{int i = 0;for(i=0; i<zs-1; i++){int j = 0;for(j=0; j<zs-1-i; j++){//这里错了,没有利用算法核心思想,相邻的两个数进行排序if(arr[i]<arr[j]){int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;}}}}

 正确事例

//冒泡排序算法的核心思想//  两个相邻的元素进行比较void bubble_sort(int arr[], int zs)
{int i = 0;for(i=0; i<zs-1; i++){int j = 0;for(j=0; j<zs-1-i; j++){//如果前面一个数比后面的数大,就交换if(arr[j]<arr[j+1]){int tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp;}}}}int main()
{//数组//把数组的数据排成升序int arr[] = {1,2,3,4,5,6,7,8,9,10};int zs = sizeof(arr)/sizeof(arr[0]);//冒泡排序的算法,对数组进行排序bubble_sort(arr,zs);int i = 0;for(i=0; i<zs; i++){printf("%d ", arr[i]);}return 0;} 

数组名的解释

//数组名确实能表示首元素的地址
//但是有2个例外:
//1、sizeof(数组名),这里的数组名表示整个数组。计算是整个数组的大小
//2、&数组名,这里的数组名表示整个数组,取出的是整个数组的地址int main()
{int arr[10]= {0};printf("%p\n", arr);printf("%p\n", arr+1);printf("-------------------\n");printf("%p\n", &arr[0]);printf("%p\n", &arr[0]+1);printf("-------------------\n");//取出的是整个数组的地址,+1就不是这个数组的范围的了 printf("%p\n", &arr);printf("%p\n", &arr+1); //sizeof计算的是整个数组的大小int n = sizeof(arr);printf("%d", n); return 0;} 

二维数组的数组名的理解

//二维数组的数组名的理解
int main()
{int arr[3][4];//int sz = sizeof(arr);//printf("%d\n", sz);//首元素表示一行的地址 printf("%p\n", arr);  //二维数组的数组名也表示数组首元素的地址 printf("%p\n", arr+1);//总数组大小除以一行的大小,就是说有几行printf("%d\n", sizeof(arr)/sizeof(arr[0]));//打印有多少列 ,行除以一个元素 printf("%d\n", sizeof(arr[0])/sizeof(arr[0][0])); return 0;} 

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

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

相关文章

爬虫运行后如何保存数据?

爬虫运行后&#xff0c;将获取到的数据保存到本地或数据库中是常见的需求。Python 提供了多种方式来保存数据&#xff0c;包括保存为文本文件、CSV 文件、JSON 文件&#xff0c;甚至存储到数据库中。以下是几种常见的数据保存方法&#xff0c;以及对应的代码示例。 1. 保存为文…

计算机视觉:经典数据格式(VOC、YOLO、COCO)解析与转换(附代码)

第一章&#xff1a;计算机视觉中图像的基础认知 第二章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(一) 第三章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(二) 第四章&#xff1a;搭建一个经典的LeNet5神经网络(附代码) 第五章&#xff1…

linux--多进程基础(2)GDB多进程调试(面试会问)

将其中的命令记住就行。 总结&#xff1a;GDB下默认调试父进程&#xff0c;可以设置调试父进程还是子进程&#xff0c;也可以设置调试模式&#xff0c;调试模式默认是on即一个在调试另一个直接运行&#xff0c;off就是另一个进程挂起&#xff0c;最后可以查看调试进程 一般默认…

Cramér-Rao界:参数估计精度的“理论底线”

Cramr-Rao界&#xff1a;参数估计精度的“理论底线” 在统计学中&#xff0c;当我们用数据估计一个模型的参数时&#xff0c;总希望估计结果尽可能精确。但精度有没有一个理论上的“底线”呢&#xff1f;答案是有的&#xff0c;这就是Cramr-Rao界&#xff08;Cramr-Rao Lower …

【复习】Redis

数据结构 Redis常见的数据结构 String&#xff1a;缓存对象Hash&#xff1a;缓存对象、购物车List&#xff1a;消息队列Set&#xff1a;点赞、共同关注ZSet&#xff1a;排序 Zset底层&#xff1f; Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…

Git add --- error: Filename too long

0 Preface/Foreword 1 解决办法 git config --system core.longpaths true

在 Spring Boot 中使用 `@Autowired` 和 `@Bean` 注解

文章目录 在 Spring Boot 中使用 Autowired 和 Bean 注解示例背景 1. 定义 Student 类2. 配置类&#xff1a;初始化 Bean3. 测试类&#xff1a;使用 Autowired 注解自动注入 Bean4. Spring Boot 的自动装配5. 总结 在 Spring Boot 中使用 Autowired 和 Bean 注解 在 Spring Bo…

【AI+智造】DeepSeek价值重构:当采购与物控遇上数字化转型的化学反应

作者&#xff1a;Odoo技术开发/资深信息化负责人 日期&#xff1a;2025年2月24日 引言&#xff1a;从事企业信息化工作16年&#xff0c;我见证过无数企业从手工台账到ERP系统的跨越。但真正让采购和物控部门脱胎换骨的&#xff0c;是融合了Deepseek AI的Odoo数字化解决方案——…

qt-C++笔记之创建和初始化 `QGraphicsScene` 和 `QGraphicsView` 并关联视图和场景的方法

qt-C++笔记之创建和初始化 QGraphicsScene 和 QGraphicsView 并关联视图和场景的方法 code review! 参考笔记 1.qt-C++笔记之创建和初始化 QGraphicsScene 和 QGraphicsView 并关联视图和场景的方法 2.qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到vie…

Java Map实现类面试题

Java Map实现类面试题 HashMap Q1: HashMap的实现原理是什么&#xff1f; HashMap基于哈希表实现&#xff0c;使用数组链表红黑树&#xff08;Java 8&#xff09;的数据结构。 public class HashMapPrincipleExample {// 模拟HashMap的基本结构public class SimpleHashMap&…

Win32/ C++ 简易对话框封装框架(多语言, 通知栏菜单, 拖拽文件处理)

Win32 简易对话框封装简易框架示例 1. 菜单操作: 多语言 2. 通知栏图标菜单 3. 其他操作: 接受拖拽文件等等 CDialogFrame.h #pragma once #include "CWindow/CDialogBase.h" #include "CNSFHeader.h" #include "Win32Utils/CBytesUtils.h" …

如何在WordPress网站中查看移动版本—快速预览与自定义设置

在WordPress网站的构建过程中&#xff0c;确保网站在移动端的显示效果至关重要。毕竟&#xff0c;随着越来越多的用户通过手机访问互联网&#xff0c;一个优化良好的移动版网站将直接影响用户的留存率和访问体验。 如果你是WordPress网站的所有者&#xff0c;本文将向你介绍如…

课程1. 深度学习简介

课程1. 深度学习简介 神经网络结构逻辑回归XOR问题&#xff08;异或问题&#xff09; 中间特征的生成全连接神经网络中间网络层的激活函数Sigmoid函数Tanh函数ReLU函数其它激活函数 使用全连接神经网络解决 XOR 问题神经网络用于回归问题训练神经网络 不同类型的神经网络 附加材…

Vue.js Vue 测试工具:Vue Test Utils 与 Jest

Vue.js Vue 测试工具&#xff1a;Vue Test Utils 与 Jest 在 Vue.js 的开发过程中&#xff0c;编写和执行测试是确保应用质量和稳定性的关键步骤。Vue Test Utils 和 Jest 是 Vue.js 官方推荐的测试工具&#xff0c;二者结合使用&#xff0c;可以高效地进行单元测试和集成测试…

数据结构 1-2 线性表的链式存储-链表

1 原理 顺序表的缺点&#xff1a; 插入和删除移动大量元素数组的大小不好控制占用一大段连续的存储空间&#xff0c;造成很多碎片 链表规避了上述顺序表缺点 逻辑上相邻的两个元素在物理位置上不相邻 头结点 L&#xff1a;头指针 头指针&#xff1a;链表中第一个结点的存储…

各种以太坊Rollup技术

以太坊Rollup技术是一种通过将大量交易批处理并在主链上记录较小的数据摘要来扩展以太坊网络的方法。Rollup技术主要分为两种类型&#xff1a;乐观Rollup&#xff08;Optimistic Rollup&#xff09;和零知识Rollup&#xff08;ZK-Rollup&#xff09;。下面详细介绍这两种技术及…

Kubernetes开发环境minikube | 开发部署MySQL单节点应用

minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署MySQL单节点应用 minikube start --force kubectl get nodes 如上所示&#xff0c;启动minikube单节点运行环境 minikube ssh docker pull 如上所示&#xff0c;从MySQL官…

DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

一文详解U盘启动UEFI/Legacy方式以及GPT/MBR关系

对于装系统的老手而说一直想研究一下装系统的原理&#xff0c;以及面对一些问题时的解决思路&#xff0c;故对以前的方法进行原理上的解释&#xff0c;主要想理解其底层原理。 引导模式 MBR分区可以同时支持UEFI和Legacy引导&#xff0c;我们可以看一下微pe制作的启动盘&#…

回合制游戏文字版(升级)

//在上一篇博客的基础上&#xff0c;加了细节的改动 //改动&#xff1a;添加了外貌&#xff0c;性别&#xff0c;招式的细节描绘&#xff1b;添加了个人信息展示界面 //一创建java文件1&#xff0c;命名为playGame package test2;import java.util.Random;public class play…