C语⾔如何利⽤数组存储“变量”
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
在实际应⽤中,通过对数组中对应元素进⾏解引操作,便可以获得该变量的值,从⽽实现了数组存储“变量”的要求。
c语言如何创建字符串数组
说明
本⽂所描述的利⽤数组存储“变量”只是为了解决⼯作中遇到的问题。实际上,数组仅能存储常量,并不能存储实际意义上的变量,读者⼀定不要混淆。⽐如:
int num6 =50;
int array[3]={10,num6,20};
如果按照上⾯的代码初始化数组,编译器⼀定会报错,会提⽰数组仅能存储常量数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。