C语言如何利用数组存储“变量” 您所在的位置:网站首页 c语言数组存储字符串 C语言如何利用数组存储“变量”

C语言如何利用数组存储“变量”

2023-10-10 00:10| 来源: 网络整理| 查看: 265

C语言如何利用数组存储“变量” 数组简介数字常量字符常量字符串常量 背景解决方法说明

数组简介

众所周知,数组仅能存储常量数据,包括数字常量、字符常量、字符串常量。但在实际应用中,可能会遇到需要按需修改数组中数据值的需求,此时又应该如何解决呢?通过一段时间的测试验证,解决了项目中的该需求,于是便产生了本篇文章,也是本人的第一篇技术博客。如果有不足或错误之处,还望读者可以不吝赐教,在下不甚感激!

数字常量

C语言利用数组保存数字常量是一种非常常见的方式,比如:int array[ ] = {0,1,2,3,4,5};而在实际应用中,也经常会使用该方法,比如:将数组中的数据保存至非易失性存储设备(比如EEPROM)中,便于程序的后续使用。

字符常量

C语言利用数组保存字符常量的方式在嵌入式领域的应用并不是很多,其形式如下:char char_array[5] = {'C','h','i','n','a'};上例则表明数组名为char_array的数组依次保存了’C’、‘h’、‘i’、‘n’、'a’这5个字符常量。

字符串常量

由于C语言不支持字符串操作,所以不支持诸如C++的string关键字用于定义字符串变量。但是在C语言中,可以利用字符串数组或者指针定义一个字符串变量。如下所示: 字符串数组形式:char string_array[] = "I love China!"; 指针形式:char * pString = "I love China!";需要注意的是,由于’\0’作为字符串的结束标志,所以无论是使用字符串数组形式或者指针形式定义一个字符串,系统均会在字符串的末尾自动加上一个’\0’。所以上述子字符串的实际长度总是比""号中的字符数量多1。

背景

在现实工作过程中,外部需要读取数组中的某个数据,但同时,通过操作后台,该数据需要按需进行改变。如果使用上面说的三种数组形式,无法满足该要求。

解决方法

通过查询资料以及测试验证,如果使用指针数组便可以解决该问题。指针数组,顾名思义便是存储指针(即地址)的数组。而在实际应用中,通过指针的解引用操作,便可以实现利用数组存储“变量”的要求。具体方法如下所示:

//定义三个变量 int array1 = 100; int array2 = 200; int array3 = 300; //定义一个指针数组村存储上述变量的地址 int * p_array[3] = {&array1,&array2,&array3}; printf("array1 = %d\n",*p_array[0]);//100 printf("array2 = %d\n",*p_array[1]);//200 printf("array3 = %d\n",*p_array[2]);//300 array1 = 60; array2 = 90; array3 = 120; printf("array1 = %d\n",*p_array[0]);//60 printf("array2 = %d\n",*p_array[1]);//90 printf("array3 = %d\n",*p_array[2]);//120

在实际应用中,通过对数组中对应元素进行解引操作,便可以获得该变量的值,从而实现了数组存储“变量”的要求。

说明

本文所描述的利用数组存储“变量”只是为了解决工作中遇到的问题。实际上,数组仅能存储常量,并不能存储实际意义上的变量,读者一定不要混淆。比如:

int num6 = 50; int array[3] = {10,num6,20};

如果按照上面的代码初始化数组,编译器一定会报错,会提示数组仅能存储常量数据。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有