鹏哥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()
{
	//不完全初始化,剩余的元素默认初始化大小为0
	int 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;
 } 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 数据变化量查询

1. DBA_HIST_SEG_STAT可以看出对象的使用趋势&#xff0c;构造如下SQL查询出每个时间段内数据库对象的增长量 select c.SNAP_ID,to_char(c.END_INTERVAL_TIME, yyyy-mm-dd) SNAP_TIME,a.OWNER,a.OBJECT_NAME,a.OBJECT_TYPE,b.DB_BLOCK_CHANGES_DELTAfrom dba_objects a,(selec…

Language Models are Unsupervised Multitask Learners,GPT-2详细讲解

1542M1.542B15.42亿个 背景和动机 1.GPT-1在特定自然语言理解任务标注较少情况下&#xff0c;通过利用大量无标注数据&#xff0c;取得较强性能 2.BERT性能超越GPT-1&#xff0c;GPT-2通过构建更大数据集和模型&#xff0c;同时在zero-shot的多任务学习场景中展示不错性能 创…

ultralytics导出engine之后,用tensorrt c++ api加载报Serialization failed

一。问题复现 1.生成engine 在安装了ultralytics之后&#xff0c;或者直接用源码也一样。运行如下代码 (或者用命令行也行&#xff1a;yolo taskdetect modeexport model/home/kv183/tensorrt_starter/ultralytics-main/weights/yolov8s.pt formatengine &#xff09; from…

Milvus x DeepSeek 搭建低成本高精度 RAG 实战

为什么手握海量数据&#xff0c;却用不出真正的“智能”&#xff1f;要么 AI 模型学艺不精&#xff0c;答非所问&#xff1b;要么技术门槛太高&#xff0c;让普通开发者望而却步。现在&#xff0c;使用阿里云 Milvus 向量检索服务、DeepSeek 大模型和 PAI LangStudio 开发工具&…

Unity Shader 学习13:屏幕后处理 - 使用高斯模糊的Bloom辉光效果

目录 一、基本的后处理流程 - 以将画面转化为灰度图为例 1. C#调用shader 2. Shader实现效果 二、Bloom辉光效果 1. 主要变量 2. Shader效果 &#xff08;1&#xff09;提取较亮区域 - pass1 &#xff08;2&#xff09;高斯模糊 - pass2&3 &#xff08;3&#xff…

学习路程五 向量数据库Milvus操作

前序 前面安装好了docker且成功拉取Milvus镜像&#xff0c;启动。通过python成功连接上了数据。接下来就继续更多Milvus的操作 在开始之前&#xff0c;先来简单了解一下向量数据库内一些东西的基本概念 概念描述数据库&#xff08;Database&#xff09;类似与MySQL的database…

pycharm安装教程-PyCharm安装破解步骤【MAC版】

pycharm安装教程-PyCharm2023安装破解步骤【MAC版】 破解安装安装包获取 今天来给大家分享 Mac 系统安装 PyCharm&#xff0c;附带资源 破解安装&#xff0c; PyCharm 相关就不叙述了&#xff0c;直接开始安装&#xff01; 破解安装 打开下载的安装包 PyCharm2023.dmg&#x…

简单介绍 SSL 证书类型: DV、OV、EV 的区别

SSL证书类型DV、OV、EV 区别&#xff1a; DV(域名验证型)SSL证书 OV(组织验证型)SSL证书 EV(扩展验证型)SSL证书

NLP的预处理数据

处理文本数据的主要工具是Tokenizer。Tokenizer根据一组规则将文本拆分为tokens。然后将这些tokens转换为数字&#xff0c;然后转换为张量&#xff0c;成为模型的输入。模型所需的任何附加输入都由Tokenizer添加。 如果您计划使用预训练模型&#xff0c;重要的是使用与之关联的…

[Web 安全] PHP 反序列化漏洞 —— PHP 序列化 反序列化

关注这个专栏的其他相关笔记&#xff1a;[Web 安全] 反序列化漏洞 - 学习笔记-CSDN博客 0x01&#xff1a;PHP 序列化 — Serialize 序列化就是将对象的状态信息转化为可以存储或传输的形式的过程&#xff0c;在 PHP 中&#xff0c;通常使用 serialize() 函数来完成序列化的操作…

国科大——数据挖掘(0812课程)——课后作业

前沿&#xff1a; 此文章记录了2024年度秋季学期数据挖掘课程的三次课后作业&#xff0c;答案仅供参考。 第一次作业 1 假定数据仓库中包含4个维&#xff1a;date, product, vendor, location&#xff1b;和两个度量&#xff1a;sales_volume和sales_cost。 1&#xff09;画…

从电子管到量子计算:计算机技术的未来趋势

计算机发展的历史 自古以来人类就在不断地发明和改进计算工具,从结绳计数到算盘,计算尺,手摇计算机,直到1946年第一台电子计算机诞生,虽然电子计算机至今虽然只有短短的半个多世纪,但取得了惊人的发展吗,已经经历了五代的变革。计算机的发展和电子技术的发展密切相关,…

Redis核心数据结构与底层实现

5种基础数据结构 String 字符串list 列表hash 字典set 集合zset 有序集合 deepseek的回答 String 内部编码 redis根据当前值的类型和长度决定使用哪种内部编码&#xff0c;共3种内部编码&#xff1a; int &#xff1a;value为整数时embstr : 短字符串&#xff08;长度<…

【我的Android进阶之旅】Android Studio SDK Update Site 国内的腾讯云镜像配置指南

一、腾讯云的镜像 https://mirrors.cloud.tencent.com/AndroidSDK/ 二、 打开 Android Studio‌的SDK Manager 路径:Tools–>SDK Manager 在右侧找到 SDK Update Sites 列表‌‌,添加如下链接,像下面一样,一个一个添加 将下面几个链接都加上去 https:

C++知识整理day9——继承(基类与派生类之间的转换、派生类的默认成员函数、多继承问题)

文章目录 1.继承的概念和定义2.基类与派生类之间的转换3.继承中的作用域4.派生类的默认成员函数5.实现一个不能被继承的类6.继承与友元7.继承与静态成员8.多继承和菱形继承问题8.1 继承分类及菱形继承8.2 虚继承 1.继承的概念和定义 概念&#xff1a; 继承(inheritance)机制是⾯…

OpenCV计算摄影学(2)图像去噪函数denoise_TVL1()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 原始-对偶算法是用于解决特定类型变分问题&#xff08;即&#xff0c;寻找一个函数以最小化某个泛函&#xff09;的算法。特别地&#xff0c;图像…

【Kimi】自动生成PPT-并支持下载和在线编辑--全部免费

【Kimi】免费生成PPT并免费下载 用了好几个大模型&#xff0c;有些能生成PPT内容&#xff1b; 有些能生成PPT&#xff0c;但下载需要付费&#xff1b; 目前只有Kimi生成的PPT&#xff0c;能选择模板、能在线编辑、能下载&#xff0c;关键全部免费&#xff01; 一、用kimi生成PP…

SQL注入(order by,limit),seacms的报错注入以及系统库的绕过

1&#xff1a;如果information_schema被过滤了&#xff0c;该怎么绕过 1.1&#xff1a;介绍一下information_schema这个库 information_schema 是一个非常重要的系统数据库&#xff0c;它在SQL标准中定义&#xff0c;并且被许多关系型数据库管理系统&#xff08;RDBMS&#x…

猿大师播放器:交通水利、公安消防Web端Vue网页播放20路RTSP H.265 1080P监控视频流

随着互联网技术的飞速发展&#xff0c;视频监控已成为各行各业不可或缺的一部分。无论是交通物流、公安消防&#xff0c;还是水利农业、园区校园&#xff0c;视频监控都扮演着至关重要的角色。然而&#xff0c;传统的视频监控解决方案往往依赖于特定的客户端软件&#xff0c;这…

Vue3 + Spring WebMVC 验证码案例中的跨域问题与解决方法

最近在基于vue3 SpringWebMVC前后端分离的开发环境中实现一个验证码的案例&#xff0c;在开发过程中遇到了一些复杂的跨域问题&#xff0c;现已解决&#xff0c;故将解决方法分享&#xff0c;希望能帮到有需要的人。 出现的问题&#xff1a; 对于验证码的实现&#xff0c;我选…