数组的本质分析

数组是相同类型的变量的有序集合

数组在一片连续的内存空间中存储元素

数组元素的个数可以显示或隐式指定

int a[5] = {1,2};

int b[] = {1,2};

数组名代表数组首元素的地址

数组的地址需要取地址符&才能得到

数组首元素的地址与数组的地址值相同

数组首元素的地址与数组的地址是两个不同的概念

数组名可以看作一个常量指针

数组名“指向”的是内存中数组首元素的起始位置

数组名不包含数组的长度信息

在表达式中数组名只能作为右值使用

只有在下列场合中数组名不能看做常量指针

  数组名作为sizeof操作符的参数

  数组名作为&运算符的参数

小结

数组是一片连续的内存空间

数组的地址和数组首元素的地址意义不同

数组名在大多数情况下被当成常量指针处理

数组名其实并不是指针,不能将其等同于指针

原文地址:https://www.cnblogs.com/sugarWill666/p/9231849.html

时间: 2024-08-06 20:26:49

数组的本质分析的相关文章

第27课 数组的本质分析

1. 数组的概念 (1)数组是相同类型的变量的有序集合 (2)数组在一片连续的内存空间中存储元素 (3)数组元素的个数可以显示或隐式指定 [编程实验]数组的初始化 #include <stdio.h> int main(){ //数组初始化 int a[5] = {1, 2};//第1.2个元素分别为1.2,其余为0 int b[] = {1, 2};//编译过程中,编译会为计算数组b的大小 int i=0; for (i = 0;i < 4;i++) { printf("a[

C++中关于[]静态数组和new分配的动态数组的区别分析

这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下 本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加深对C++语言数组的理解.具体区别如下: 一.对静态数组名进行sizeof运算时,结果是整个数组占用空间的大小:因此可以用sizeof(数组名)/sizeof(*数组名)来获取数组的长度.int a[5]; 则sizeof(a)=20,sizeof(*a)=4.因为整个数组共占20字节,首个元素(i

a和&amp;a的区别、二维数组的本质及多维数组

1 a和&a的区别 int a[10] = {1,2};//其他初始化为0 a代表数组首元素的地址,不是整个数组的地址 &a表示整个数组的地址 &a,a代表的数据类型不一样 &a数组类型int[10] a 数组首元素的类型 2 数组指针的用法 int i=0;//循环变量 int a [5] = {3, 4, 5, 6, 2}; //直接定义一个数组指针 int (*p)[5] = &a; for (i=0; i<5; i++) { printf("

数组与指针分析

数组的本质 数组是一段连续的内存空间 数组的空间大小为sizeof(array_type)*array_size 数组名可以看做指向第一个元素的常量指针 指针的运算 指针是一种特殊的变量,与整数的运算规则为 p+n: <--> (unsigned int)p + n * sizeof(*p); 结论: 当指针p指向一个同类型的数组的元素时,p+1将指向当前元素的下一个元素:p-1将指向当前元素的上一个元素. 指针之间只支持减法运算,参与减法运算的指针类型必须相同, 注意: 只有当两个指针指向同

第51课 继承对象模型分析——多态的本质分析

多态的本质分析 用C写面向对象,用C实现多态 #ifndef _51_2_H_ #define _51_2_H_ typedef void Demo; typedef void Derived; Demo* Demo_Create(int i, int j); int Demo_GetI(Demo* pThis); int Demo_GetJ(Demo* pThis); int Demo_Add(Demo* pThis, int value); void Demo_Free(Demo* pThi

数组本质分析

  数组是相同类型变量的有序集合,例如:int a[5]; a代表数组第一个元素的起始地址 有5个int类型的数据,且是5个连续的内存空间. 这个20个字节的空间的名字叫a,a[0],a[1]都是数组中的元素,数组中的元素没有名字 数组的大小 数组在一片连续的内存空间中存储元素 数组元素的个数可以显式或隐式指定:int a[5] = {2,3}; int b[] = {1,2}; 1 #include <stdio.h> 2 int main() 3 { 4 int a[5] = {1,2};

数组的本质

数组的概念 数组是相同类型的变量的有序集合 数组的大小 数组在一片连续的内存空间中存储元素 数组元素的个数可以显示或隐式指定 例子1:数组的初始化 #include<stdio.h> int main() { int a[5] = {1,2}; int b[] = {1,2}; printf("a[2] = %d\n",a[2]); printf("a[3] = %d\n",a[3]); printf("sizeof(a) = %d\n&quo

C++中引用的本质分析

引用的意义 引用作为变量别名而存在,因此在一些场合可以代替指针 引用相对于指针来说具有更好的可读性和实用性 swap函数的实现对比: void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; } void swap_yinyong(int& a,int& b) { int t = a; a = b; b = t; } int main() { int a = 1; int b = 2; printf("a = %d,b =

8.2.2 本质分析

1 .Equals  静态方法  Equals 静态方法实现了对两个对象的相等性判别,其在 System.Object 类型中实现过程可以表 示为: public static bool Equals(object objA, object objB) { if (objA == objB) { return true; } if ((objA != null) && (objB != null)) { return objA.Equals(objB); } return false; }