c语言基础笔记10

【C语言基础学习笔记】一、初始C语言(3) 说明:我是一个初学c语言的小白,很多地方都不是很理解,所以就会自己动手敲代码进行相应的推理验证,希望可爱的你在看到这些步骤时,不要嫌弃我啰嗦。(比如吐槽:这作者咋这样呀,这么简单的还要敲代码验证,真菜呀!…我:好吧,我不装了,我摊牌了,我确实菜,真的菜,咋滴啦,还不允许初学者菜呀!) EOF-- - end of file 文件结束标志 值: - 1 提示:本小结是初始C语言最后一小部分内容,之后会有一个初始C语言总结的文章,包含初始C语言(1)(2)(3)复习专用的思维导图,一些用于编程练习的ca 阅读详情

本部分包含一维二维数组的创建和初始化、以及在内存中的存储形式,数组作为函数参数。

本部分练习题:冒泡排序。

笔记:

  • 数组
    • 5.1 概述
      • 所谓数组,就是一个集合,里面存放了相同类型的数据元素
      • 特点1:数组中的每个数据元素都是相同的数据类型
      • 特点2:数组是由连续的内存位置组成的
      • 例图:

    • 5.2 一维数组
      • 5.2.1 一维数组定义方式
        • 一维数组定义的三种方式:
          • 数据类型 数组名[ 数组长度 ];
          • 数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};
          • 数据类型 数组名[ ] = { 值1,值2 ...};
        • 图示:

        • 注意:如果在初始化数据的时候,没有全部填写完,会用0来填补剩余数据+数组长度必须是常量
        • 总结1:数组名的命名规范与变量名命名规范一致,不要和变量重名
        • 总结2:数组中下标是从0开始索引
      • 5.2.2 一维数组数组名
        • 一维数组名称的用途:
          • 1.可以统计整个数组在内存中的长度
          • 2.可以获取数组在内存中的首地址
        • 注意:数组名是常量,因此不可以赋值
        • 总结1:直接打印数组名,可以查看数组所占内存的首地址
        • 总结2:对数组名进行sizeof,可以获取整个数组占内存空间的大小
      • 5.2.3 冒泡排序
        • 作用: 最常用的排序算法,对数组内元素进行排序
          • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
          • 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
          • 重复以上的步骤,每次比较次数-1,直到不需要比较
    • 5.3 二维数组
      • 二维数组就是在一维数组上,多加一个维度。
      • 5.3.1 二维数组定义方式
        • 二维数组定义的四种方式:
          • 数据类型 数组名[ 行数 ][ 列数 ];
          • 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
          • 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
          • 数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};
        • 建议:以上4种定义方式,利用第二种更加直观,提高代码的可读性
        • 总结:在定义二维数组时,如果初始化了数据,可以省略行数
      • 5.3.2 二维数组数组名
        • 二维数组名称的用途:
          • 1.查看二维数组所占内存空间
          • 2.获取二维数组首地址
    • 5.4 数组&函数
      • 传递数组给函数
        • 可以通过指定不带下标(索引)的数组名来传递一个指向数组的指针
        • 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址
        • 数组作为参数的三种方式
          • 1.形式参数是一个指针:void myFunction(int *param)
          • 2.形式参数是一个已定义大小的数组:void myFunction(int param[10])
          • 3.形式参数是一个未定义大小的数组:void myFunction(int param[])
      • 从函数返回数组
        • C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。
        • 如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数。
          • 例子:int * myFunction()

代码: 

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

bubble_sort(int arr[], int len)
{
	for (int i = len-1;i>0;i--)
	{
		for (int j = 0;i>j ;j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = arr[j + 1];
				arr[j + 1] = arr[j];
				arr[j] = temp;
			}
			else
			{
				break;
			}
		}
	}
}

int main()
{
	//数组的创建
	int arr1[8];
	//数组的初始化
	int arr2[] = { 1,2,3,4 };	
	int len = sizeof(arr2) / sizeof(arr2[0]);
	char arr3[] = { 'a','c','x','\0' };
	char arr4[] = "acx";

	//一维数组在内存中的存储
	int arr5[] = { 1,2,3,4,5,6,7 };
	for (int i = 0;i < 10;i++)
	{
		printf("arr[%d]的地址是%p\n",i, &arr5[i]);
	}

	//二维数组的创建
	int arr6[2][3];
	//二维数组的初始化
	int arr7[2][3] = { {1,2,3},{4,5,6} };

	//数组作为函数参数
	int arr8[] = { 1,2,3,4 };
	printf("%p\n", &arr8[0]);
	printf("%p\n", arr8);
	printf("%p\n", arr8+1);
	printf("%p\n", &arr8[1]);
	printf("%p\n", &arr8);
	printf("%p\n", &arr8+1);

	//冒泡排序
	int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
	int len = sizeof(arr) / sizeof(arr[0]);
	bubble_sort(arr,len);
	for (int i = 0;i < len;i++)
	{
		printf("%d ", arr[i]);
	}


}

【C语言基础一百题1】C语言基础100题全新整理版 最后一个寒假,想复习一下c语言的基础知识,正好也做一个查缺补漏的工作,于是找个C语言基础100题作为练习。 但是原来的100题涉及很多绘图的问题,而且有些题目过于混乱并且在摘记过程中没有经过加工,所以我自己对原来的题目做了一下调整并且删掉了原来的绘图的题目,在原来题目涉及不多的地方增加了新的题目,新题目多取自谭老的《C语言程序设计》完全可以在VC++6.0环境下运行,100道题目,基本涉及到C语言知识点的所有方面。 虽然都是基础的题目,但在整个总结的过程中也发现了自己很多问题,自我解决问题的过程也是自己 阅读详情

相关推荐

【C语言基础学习笔记】一、初始C语言(1)

说明:我是一个初学c语言的小白,很多地方都不是很理解,所以就会自己动手敲代码进行相应的推理验证,希望可爱的你在看到这些步骤时,不要嫌弃我啰嗦。(比如吐槽:这作者咋这样呀,这么简单的还要敲代码验证,真菜呀!…我:好吧,我不装了,我摊牌了,我确实菜,真的菜,咋滴啦,还不允许初学者菜呀!) 1.第一个c语言程序 #include<stdio.h> int main() { printf("hello world!\n"); return 0; } //所有的c语言程序都有相同的一个框架 int

大家好我叫张同学 7748

C语言基础:第10天笔记

在C语言中,函数是一段具有特定功能的独立代码块,它可以接收输入参数、执行相关操作并返回结果。

bsbsjsns的博客 820

C语言基础知识入门大全

C语言入门知识

#@学生小羊的博客 3713

C语言基础笔记整理(10)

笔记整理自哈尔滨工业大学的MOOC课程:C语言程序设计精髓

weixin_45714993的博客 361

黑马程序员——C语言基础教程笔记

黑马程序员——C语言基础教程笔记 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录黑马程序员——C语言基础教程笔记前言Day-11.C语言概论1.1 什么是C语言1.1.1 C语言特点1.1.2 学习C语言的理由1.1.3 发展方向1.1.4 C语言中的关键字2.3.Day-21.引入库2.读入数据总结 前言 研三了,作为一枚菜鸡硕,为了找工作,只好重刷C语言。以下笔记是我在“黑马程序员:http://yun.

BinHeon的博客 6764

Discrete Optimization (Coursera) 学习笔记 Week 1 introduction (开个帖子)

Week 1 Introduction 这位教授Pascal Van Hentenryck 真的算是优化领域神级别的人物了吧?截一张Google scholar的图大家感受一下… 居然在Coursera上看到了他开的课:Discrete Optimization。试听了几节后,发现讲得很有激情,而且深入浅出。遂决定花暑假跟完这一门课。 这门课每周花两三个小时介绍基础概念,然后得花十几个小时写作业(coding)… 一开始以为Coursera上的课的作业应该不会太难,然后第一次作业(knapsack)我就被

ZJ_11701的博客 656

c语言基础笔记(10.c语言指针)

10 c语言指针 10.1 指针 10.1.1 指针的概念 指针变量也是一个变量; 指针存放的内容是一个地址,该地址指向一块内存空间 10.1.2 指针变量的定义 可以定义一个指向一个变量的指针变量 Int *p; //表示定义一个指针变量 *p; //代表指针所指内存的实际数据 切记,指针变量只能存放地址,不能将一个int型变量直接赋值给一个指针。 Int *p = 100; Int *p = &a; //得到变量a的地址,将这个地址赋值给变量p Int *p1;//定义一个变量,名字叫p1,它可

moneypine的博客 454

柔性OLED屏幕绿线故障的激光修复技术解析

OLED显示技术作为新一代显示方案,其主动矩阵驱动原理通过TFT背板控制每个像素的发光。在柔性屏幕应用中,微米级数据线路的物理损伤会导致显示异常,表现为贯穿屏幕的绿线故障。激光微焊技术凭借其微米级加工精度,成为修复这类精密电路损伤的理想方案。该技术通过纳秒级脉冲激光实现金属线路的精准重熔,在手机维修、显示面板制造等领域具有重要应用价值。特别是在折叠屏、曲面屏等柔性显示设备维修中,激光修复技术能有效解决因反复弯折导致的数据线断裂问题,配合光学定位系统和参数优化,修复成功率可达85%以上。

weixin_29168153的博客 324

C语言基础学习笔记10.6

7-1 厘米换算英尺英寸 (15 分) 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。 输入格式: 输入在一行中给出1个正整数,单位是厘米。 输出格式: 在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。 输入样例: 170 结尾无空行 输出样例: 5 6 结尾无空行 笔记如下: 题目要求foot in

qq_44559767的博客 303

STM32F407 HAL库定时器触发ADC采集与DMA数据传输(定时器TIM+ADC+DMA)

在STM32F407系列微控制器的开发中,结合定时器、ADC(模数转换器)与DMA(直接存储器访问)控制器,能够显著提升数据采集与传输的效率。本文将指导你如何使用STM32 HAL库,通过定时器触发ADC1的单通道采集,利用DMA传输数据,最终通过串口将电压值打印出来。具体实现中,我们将读取ADC1的通道5(对应引脚PA5),并将转换得到的电压值发送到串口助手上进行显示。

jmlinux的博客 7012

SSD性能测试进阶:用fio的io_uring引擎榨干你的NVMe硬盘

本文深入探讨了如何利用fio的io_uring引擎对NVMe SSD进行深度性能测试。通过对比传统libaio引擎,详解了io_uring低开销、高并发的优势。文章提供了从测试矩阵设计、队列深度分析到写入放大观察和尾延迟可视化的完整进阶方法,并附有实战案例与脚本,旨在帮助用户科学压榨NVMe硬盘的极限性能,获取更真实的评估数据。

weixin_29247219的博客 326

2021.10.29 day05C语言基础笔记日常

变量与常量 什么是变量: 在程序运行期间数值可以发生变化的叫变量,相当于存放数据的 盒子 定义: 类型 变量名; int num; 变量名取名规则: 1、由字母、数字、下划线组成 2、不能以数字开头 3.不能与32个c语言关键字重名 4.见名知意(功能+类型+作用域) 注意:变量的默认值是随机的,为了安...

m0_63097956的博客 118

RK3588 MPP视频编码实战:从环境搭建到高效封装

本文详细介绍了在RK3588平台上利用MPP(Media Process Platform)进行硬件视频编码的完整实战流程。从MPP库的环境搭建、编译安装,到核心编码参数(如码率控制、GOP、图像对齐)的深入解析,并提供了一个可复用的C++编码器类封装方案,帮助开发者快速实现高效的H.264/H.265视频编码,显著降低CPU占用。

weixin_29192211的博客 347

C语言基础学习笔记

此博文是整理本人初入编程世界学习C语言的经历,零基础想学习C语言的可参考本文的学习方式,内容包含视频+笔记+思维导图总结,根据视频资源编写自己见解的学习笔记,再从笔记中提炼总结思维导图。笔记看得云里雾里是正常的,一是需要配合视频,二是因为写笔记时是想到哪里记到哪里,每个人侧重点不同,笔记仅供参考。

weixin_45068267的博客 2129

华为OD新系统机试真题-勇攀数字高峰(Java/Py/C/C++/Js/Go)

新系统 华为OD机试新系统【勇登数字高峰】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试真题【勇登数字高峰】

qq_45776114的博客 1545

【Dify】PPT生成工具应用

本文介绍了一款自动化PPT生成工具,通过智能接口将文本内容高效转化为结构化演示文档。该系统采用三阶段工作流(内容输入、HTTP请求上传、文件输出),无需复杂操作即可生成专业PPT。工具适用于教学课件、产品发布、企业培训等场景,能显著提升内容表达效率,特别适合初学者快速制作演示材料。文章详细说明了核心节点、应用场景及开发资源,为文本到PPT的自动化转换提供了实用解决方案。

Mr数据杨 1216

C语言基础笔记(全)

printf函数可以输出各种类型的数据,包括整型、浮点型、字符型、字符串型等,实际原理是printf函数将这些类型的数据格式化为字符串后,放入标准缓冲区,然后将结果显示到屏幕上printf函数根据format给出的格式打印输出到stdout(标准输出)和其他参数中代码格式%c字符%d带符号整数%f浮点数%s一串字符%u无符号整数%x无符号十六进制数,用小写字母%X无符号十六进制数,用大写字母%p一个指针%%一个'%'符号。

señoritaw的博客 1万+

MFC Windows 程序设计[105]之彩色滚动条(附源码)

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。

hnjzfwy的博客 518

【C语言基础学习笔记】+ 【C语言进阶学习笔记】总结篇(坚持才有收获!)

【C语言基础学习笔记系列】 【C语言基础学习笔记】一、初始C语言(1) 【C语言基础学习笔记】一、初始C语言(2) 【C语言基础学习笔记】一、初始C语言(3) 【C语言基础学习笔记】一、初始C语言(总结篇) 【C语言基础学习笔记】二、分支与循环语句(1) 【C语言基础学习笔记】二、分支与循环语句(2) 【C语言基础学习笔记】二、分支与循环语句(3) 【C语言基础学习笔记】三、函数(1) 【C语言基础学习笔记】三、函数(2)— 函数递归详解 【C语言基础学习—三子棋游戏】(包含详细讲解+优化策略及实现) 【C

大家好我叫张同学 7814

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C语言基础题练习10道

第三个人按下所有编号是3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉);依次类推,一共有k个人,问最后有哪些灯开着,输入n和k,输出开着的灯的编号。斐波那契数列指的是这样一个数列0,1,1,2,3,5,8,13,特别指出第0项是0,第1项是第一个1。2个羽毛球队比赛,各出3人,每个人只比一次,甲队为A、B、C三人,乙队为X、Y、Z三人,有人打听比赛名单,A说他不和X比,C说不和。反向思路,输出第a项时,保存第a+1、a+2项的值。...

weixin_43325374的博客 9643

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C 语言基础笔记 p1

起源:1972 年由丹尼斯・里奇(Dennis Ritchie)在贝尔实验室开发,最初用于编写 UNIX 操作系统。特点面向过程的编程语言,结构化强,逻辑清晰。高效性:接近底层硬件,执行速度快,适合系统级开发。可移植性:代码能在不同平台(Windows、Linux、Mac)上运行(需重新编译)。功能强大:支持指针、位运算等底层操作,是很多高级语言的基础(如 Python、Java 的底层部分用 C 实现)。应用场景:操作系统、嵌入式开发、驱动程序、游戏引擎、数据库等。c运行。

cindddwww的博客 2258

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C语言基础知识笔记——万字学习记录

Hi,大家好,我是半亩花海。本文主要参考浙大翁恺老师的C语言讲解以及其他博主的C语言学习笔记,进而梳理C语言的基础知识,为后续系统性学习数据结构和其他语言等知识夯实一定的基础。

沉思默想,深度学习,半亩星河半亩月,半亩花海半亩云。 2612

C语言基础测试题

C语言基础测试题———- android培训、java培训、期待与您交流! ———-C语言基础测试题 题目1 题目2 题目3 题目4 题目5 题目6 题目7 题目8 题目9 题目10本套题目只有10题算是让我想了好一阵子,第5题一般,剩下的都比较简单。好我们来看题:题目11、 设有定义int a[]={1,3,5,7,9},*p=a;结果为7的表达式是(A)。 A) *(p+3) B) *(p+

chenlongcreate的专栏 1万+

C语言基础100例子

C语言基础实例

Cherry的博客 1万+

C语言基础语法汇总

C语言基础语法汇总

qq_46332212的博客 4181
上一篇: c语言基础学习09
下一篇: c语言练习 三子棋
Ohrkaninchen
博客等级 码龄5年 18粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ohrkaninchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值