c语言数组

数组
构造数据类型之一
数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素。
数组中各元素的数据类型要求相同,用数组名和下标确定。数组可以是一维的,也可以是多维的。
在科学计算中,许多重要的应用都是基于数组的。

所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的。
C语言中,一维数组的说明一般形式如下:

<存储类型>    <数据类型 >    <数组名>[<表达式>] ;

 

数组必须先定义,后使用
 只能逐个引用数组元素,不能一次引用整个数组
 数组元素表示形式:  数组名[下标]
其中:下标可以是常量或整型表达式

说明:
 数组不初始化,其元素值为随机数
 对static数组元素不赋初值,系统会自动赋以0值
只给部分数组元素赋初值

当全部数组元素赋初值时,可不指定数组长度
在定义数组时,为数组元素赋初值(在编译阶段使之得到初值)   

 

时间: 2024-09-07 08:23:39

c语言数组的相关文章

c语言数组详解

 这篇文章主要介绍了c语言数组,有需要的朋友可以参考一下 一 数组名是什么   数组就是一段连续可用的内存. 比如声明一个 int数组   int array[]={1,2,3};   array代表什么?有的资料说:数组名是指向数组首地址的常量指针.    下面我们可以验证一下. 我都知道sizeof操作符可以返回一个对象或者类型所占的内存字节数. 如: int i=1: 那么sizeof(i) 的结果就是4(64位机器下的部分编译器是8)   那我们打印sizeof(array)     p

单片机 c语言 数组-单片机 c语言 数组lcd1602

问题描述 单片机 c语言 数组lcd1602 求指教:cxdsz[p+1]是 int 类型数组中的一个数值,怎样求出这个数值的位数,或者说就是想在LCD1602上显示出这个数? char array[]="cxdsz[p+1]" ; len=strlen( array ) ; for(q=0;q<=len;q++) LcdWriteData(array[q]): 为什么不行啊? 解决方案 你可以先定义个a=cxdsz[p+1]然后再char array[]=a,这样你就可以把cx

图片-有关C语言数组的一个小问题

问题描述 有关C语言数组的一个小问题 这是题目 这是我做的 但是不知道为什么我这个写出来只能完成一半 那个"不存在"的提醒不管什么情况都会显示出来 想请教一下啊 谢谢了 解决方案 首先i应该从0开始赋值,否则就会把a[0]也就是T漏掉.其次,判断不存在应该是所有位置都找过以后以后才能判断确实不存在,而不是每个位置都在判断. 具体做法是把不存在的输出放在循环体外面进行判断,然后增加一个变量t并赋初值为0,在找到的时候让t的值变为1,这样一来可以明白:在循环完成之后如果t的值为1就说明找到

c语言-C语言数组作为参数传入子函数

问题描述 C语言数组作为参数传入子函数 对不起,可能我没表达清楚,我想问,数组作为参数传入子函数为什么不是作为形式参数传入,请你看程序运行结果,如果数组作为形式参数传入子函数,那么形式参数的值并不会影响原来main函数中的值,但是实际上,main函数中数组原来的值已经被修改了,这是因为数组传入的是地址(指针),我的问题就在这里,传入的是指针为什么不是用完就扔的形式参数. 这与c语言的设计有关是吗?内部有什么机制吗? 解决方案 首先提一下std C 调用约定,参数的传递使用栈. 在传递时首先将参数

c语言课程设计-c语言数组问题,,,,,,,,,,

问题描述 c语言数组问题,,,,,,,,,, #includevoid main(){ int ijmna[20]; printf(""input ge shu n:""); scanf(""%d""&n); printf("" ""); printf(""input yi dong wei shu m:""); scanf("&

vs2015-C语言数组的变长数组问题

问题描述 C语言数组的变长数组问题 VS2015为什么用不了变长数组,用const定义的也不能用,什么编辑器才能用?求大神帮助 解决方案 跟vs2015没关系,用list吧 解决方案二: c语言变长数组C语言变长数组C语言变长数组 解决方案三: 都不能,你用vecotr吧 解决方案四: c 有变长数组吗? 用stl库吧,向量或者list都可以 解决方案五: 用gcc编译,加上c99标志 解决方案六: c支持变长数组的吗?????????

c语言数组指针,不报错,就停止工作,请问哪里错了

问题描述 c语言数组指针,不报错,就停止工作,请问哪里错了 第一次提问,多包含,也不报错,为什么一运行就按停止工作报错 #include #include #include struct arr { int *pbase;//第一个元素的首地址 int len;//数组所能容纳的最大元素个数 int cnt;//当前数组有效元素个数 }; void init_arr(struct arr *p1,int length) { (p1->pbase) = (int *)malloc(sizeof(i

c语言-C语言数组越界的含义

问题描述 C语言数组越界的含义 听同学说C语言数组越界会导致出错,我试验了下不会,谁能写一个数组越界出错的例子? 解决方案 这个不一定能观察到,因为C没有越界检查,你可以这么写: int a[10]; int i=0; while (true) { a[i++] = i; } 肯定会报错 解决方案二: 越界不就是超过数组的大小,随便写个拷贝就行了 解决方案三: 例如你声明数组a[10],如果访问a[10]就发生越界错误,越界错误的本质是访问了未知内存空间,如果之前此区域内存被使用后,此时访问获得

c语言-C语言 数组问题 这俩有什么区别

问题描述 C语言 数组问题 这俩有什么区别 int (*a)[10]; 与int a [10]的区别两者的return a;分别返回的是什么还有两者的元素怎么引用 解决方案 这两者很不同. int a[10];这里的a是一个常量,表示数组的首地址.数组存储的是int型数据. int (*a)[10]; 这里的a是一个指针变量,指向一个数组,数组存储的是10个int型数据. 解决方案二: 一个是指针,一个是数组,用sizeof求值,以及free的时候都是不同的. 解决方案三: int (*a)[1

c语言数组定义-关于c语言数组的描述问题

问题描述 关于c语言数组的描述问题 我在数据结构的课本上看到了一个很诡异的写法,A[-20..30,-30..20] 求教,这是什么意思?课本上还说这是个二维数组. 还有A[i,j]这种写法,还都说是二维数组. 主要是前者的那个符号让我很不解啊. 解决方案 关于C语言中对数组取址的问题C语言中数组的初始化问题C语言数组初始化问题 解决方案二: 没见过哪个语言这么表示二维数组,但是python里的确可以取负数下标哦-