C语言数组

Posted 任我驰骋°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言数组相关的知识,希望对你有一定的参考价值。

1. 一维数组的使用。

  1.数组传参发生降维,降维成指针。数组名做右值,代表首元素的地址。

  2.数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。 但是对于下面的代码要区分,内存中如何分配。

char arr1[] = "abc";
char arr2[3] = {'a','b','c'};

注意:一般用“ ”引起来的字符串不用数组保存时,一般都直接被编译到字符常量区,该字符串不可直接被修改。

  3.对于数组的使用我们之前介绍了一个操作符: [] ,下标引用操作符。它其实就数组访问的操作符。

 int sz = sizeof(arr)/sizeof(arr[0]);  //求数组中有几个元素

注意:arr[0]->为什么是0下标:因为数组至少有一个有效元素,所以零下标一直存在。

2. 一维数组内存中的存储。

#include <stdio.h>
int main()
{
 int arr[10] = {0};
 int i = 0;
 for(i=0; i<sizeof(arr)/sizeof(arr[0]); ++i)
 {
 printf("&arr[%d] = %p\\n", i, &arr[i]);
 }
 return 0; 
 }

输出结果如下:
在这里插入图片描述
  仔细观察输出的结果,我们知道,随着数组下标的增长,元素的地址,也在有规律的递增。 由此可以得出结论:数组在内存中是连续存放的:
在这里插入图片描述
总结:
  在C语言当中,任何变量(基本变量,指针变量,结构体变量,数组变量)空间都是整体开辟,但任何元素的起始地址值一定是开辟众多字节地址当中地址最小的那个。

以上是关于C语言数组的主要内容,如果未能解决你的问题,请参考以下文章

解释'空'C数组(int a = {};)

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

20160221.CCPP体系详解(0031天)

SQL Select 语句的用法

C语言100个经典算法源码片段