首页 > 其他分享 >嵌入式学习之路 7(C语言基础学习——数组)

嵌入式学习之路 7(C语言基础学习——数组)

时间:2024-07-29 21:28:02浏览次数:15  
标签:10 初始化 int 数据类型 嵌入式 学习 数组名 数组 C语言

        数组是一组相同类型数据的集合,也是一组相同类型变量的集合,同时数组本身也是一种数据类型。

       在需要定义多个相同类型的产量时,按照以往的方法一个一个定义就相当繁琐,而数组可以批量处理多个数据。

一、一维数组

1、数组语法:

类型说明符  数组名  [常量表达式]

类型说明符就是数据类型。

(1)类型说明符:指定该数组中元素的数据类型,如整型(int、short、long、long long)、浮点型(float、double、long double)、字符型(char)等。
(2)数组名:是数组的标识符,遵循与普通变量名相同的命名规则,用于代表该数组。
(3)[常量表达式]:[]表示这是数组类型,常量表达式表示数组的长度,即数组中元素的个数。

需要注意的是:

1、C99标准之后,数组的长度可以用变量表示。

2、数组的长度可以省略不写,但是必须要有初始化,因为编译器要根据初始化的值来推算数组的实际长度。

如:int len=sizeof(a)/sizeof(int)

表示用数组的总长度除去单个数组的长度(字节)

比如:  int array[10] 

       表示定义了一个名为array的可以存放10个int型数据的数组,也可以理解为一下子定义出10个int型变量。

2、数组的初始化

全部初始化:int a[10]={1,2,3,4,5,6,7,8,9}

部分初始化:int a[10]={1,2,3,4,5}未初始化部分会被初始化为0

不初始化:int a[10];  此时数组中是随机数,也称垃圾值。

数组的赋值:用for循环赋值或者用输入的方式一个一个赋值。

数组特点:
连续性:数组在内存中占据的空间是连续的。
有序性:数组的元素按顺序依次存放。
单一性:数组元素的类型是相同的。

数组元素的引用:
语法:数组名[下标] ,[] 此时表示数组下标运算 。
下标含义:
例如 a[0] ,下标表示相对于数组名偏移了几个元素,即偏移量。
数组越界:编译器不会检查数组越界,但程序员需要特别注意,避免越界访问导致程序错误。
注意:
对于 int a[10]; ,a 所代表的值是数组所占空间的首地址,a 所代表的数据类型是整个数组类型,即 int[10] 。类似于 int a; ,判断标识符所代表的数据类型时,去掉标识符,剩下的就是标识符对应的数据类型 。

3、练习:

1. 将数组int a[5] = {1, 2, 3, 4, 5}实现倒置

及  a[5] = {5,4,3,2,1}

#include <stdio.h>

int main()
{
	int i, j, temp;
	int a[5] = {1,2,3,4,5};

	for ( j=0; j<4; j++)
	{
		for ( i=0; i<4-j; i++)
		{
			temp = a[i];
			a[i] = a[i+1];
			a[i+1] = temp;
		}
	}

	for ( i=0; i<5; i++)
	{
		printf("%d ",a[i]);
	}

	printf("\n");

	return 0;
}

2. 从终端输入一个n 将数组int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9} 完成如下变化,并打印,操作方式如下: n=1   

9 1 2 3 4 5 6 7 8

n=2   

8 9 1 2 3 4 5 6 7

n=3   

7 8 9 1 2 3 4 5 6

#include <stdio.h>

int main()
{
	int i, j, temp, n;
	int a[9] = {1,2,3,4,5,6,7,8,9};
	printf("n = ");
	scanf("%d",&n);

	for ( j=0; j<9-n; j++)
	{
		for ( i=0; i<8; i++)
		{
			temp = a[i];
			a[i] = a[i+1];
			a[i+1] = temp;
		}
	}

	for ( i=0; i<9; i++)
	{
		printf("%d ",a[i]);
	}

	printf("\n");

	return 0;
}

用两层for循环实现对数组元素的循环移位操作,外层循环控制移位的次数,内层循环实现每次的移位操作。

标签:10,初始化,int,数据类型,嵌入式,学习,数组名,数组,C语言
From: https://blog.csdn.net/weixin_63556308/article/details/140780262

相关文章

  • 【c语言】do while、for循环
    1.dowhile语义:先执行语句,再判断表达式;真,继续执行语句,假,结束。do{语句;}while(表达式);//一定记得加分号;流程图:while与dowhile区别1.while先判断后执行2.dowhile先执行后判断(循环体至少执行一次)2、for循环:for(表达式1;表达式2,表达式3)//{循环体语......
  • 【c语言】数组相关知识
    概念:数组是一组相同类型元素的集合(一种相同类型的变量的集合)      数组也是一种数据类型(构造类型),可以批量处理多个数据。      数组有一维数组、二维数组;特点:连续性      有序性      单一性数组在内存中开辟是线性连续且......
  • 学习笔记(b站小土堆)
    一、torchvision中的数据集使用CIFAR10结果,图片展示为一只猫二、DataLoader的使用结果测试集当中的第一个数据是一个三通道(RGB),是个彩色的图片,尺寸为32*32,对应的target是3batch_size=4就是从当中去取test_data[0]、test_data[1]、test_data[2]、test_data[3],把对应......
  • 【C语言】输入、输出函数知识、getchar()、putchar()、 scanf()、printf()
    函数的声明和定义1.1 函数声明1.告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。2.函数的声明一般出现在函数的使用之前。要满足先声明后使用。3.函数的声明一般要放在头文件中的。1.2C本身是不提供输入输出功能的,需要......
  • PyTorch深度学习快速入门(中)
    PyTorch深度学习快速入门(中)一、Containers(神经网络的基本骨架)(一)Module的使用(二)Sequential的使用<搭建小实战>二、ConvolutionLayers(卷积层)(一)torch.nn.functional中conv2d的使用(二)torch.nn中Conv2d的使用三、Poolinglayers(池化层)(一)池化层的介绍(二)MaxPool2d的......
  • 函数的学习(一)
    1.定义C语言的函数是一段可被重复调用的代码块,可以执行特定的任务并返回一个值。每个函数由函数头、函数体和函数返回值组成。2.函数的分类C语言中的函数可以根据不同的特性进行分类,常见的分类如下:(1)标准函数(库函数):这些函数是C语言提供的预定义函数,可以直接在程序中调用。标......
  • 随机数函数 和 猜数字游戏(c语言初学者拔高)
    目录1.随机数的生成方法1.1rand()函数1.1.1函数原型1.1.2函数功能1.2srand()函数1.2.1函数原型1.2.2函数功能1.3time()函数1.2.1函数原型1.1.2函数功能1.4设置随机数的范围2.猜数字游戏2.1普通版:结构逻辑解析2.1.1程序代码2.1.2 细节答疑2.2拓......
  • C语言------指针
    一、指针的理解与定义1.1变量的访问方式计算面中程序的运行都是在内存中进行的,变量也是内存中分配的空间,且不同类型的变量占用不同大小的空间。那如何问内存中变量存储的数据呢?有两种方式:直接访问和间接访问。直接访问:直接使用变量名进行的访问,以前的程序都是采用这种方式。......
  • c语言字符数组
            字符数组与字符串,字符数据输出用%s表示              上面两种方式的区别:             ......
  • 【C语言】VS实⽤调试技巧
    VS实⽤调试技巧1.什么是bug?2.什么是调试?3.debug和release4.VS调试快捷键4.1环境准备4.2调试快捷键5.监视和内存观察5.1监视5.2内存6.调试举例17.调试举例28.调试举例3:扫雷9.编程常⻅错误归类9.1编译型错误9.2链接型错误9.3运⾏时错误1.什么是bug?......