zoukankan      html  css  js  c++  java
  • 数组的本质

    数组的概念

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

    数组的大小

    • 数组在一片连续的内存空间中存储元素
    • 数组元素的个数可以显示或隐式指定

    例子1:数组的初始化

    #include<stdio.h>
    int main()
    {
    	int a[5] = {1,2};
    	int b[] = {1,2};
    	
    	printf("a[2] = %d
    ",a[2]);
    	printf("a[3] = %d
    ",a[3]);
    	
    	printf("sizeof(a) = %d
    ",sizeof(a));
    	printf("sizeof(b) = %d
    ",sizeof(b));
    
    	return 0;
    }
    

    数组地址与数组名

    • 数组名代表数组首元素的地址
    • 数组的地址需要用取地址符&才能得到
    • 数组首元素的地址值与数组的地址值相同
    • 数组首元素的地址与数组的地址是两个不同的概念

    数组名的盲点

    • 数组名可以看做一个常量指针
    • 数组名“指向”的是内存中数组首元素的起始位置
    • 数组名不包含数组的长度信息
    • 在表达式中数组名只能作为右值使用
    • 只有在下列场合中数组名不能看做常量指针
      • 数组名作为sizeof操作符的参数
      • 数组名作为&运算符的参数

    例子2:数组和指针的不同

    #include<stdio.h>
    
    int main()
    {
    	int a[5] = {0};
    	int b[2];
    	int* p = NULL;
    	
    	p = a;
    	
    	printf("a = %p
    ",a);
    	printf("p = %p
    ",p);
    	printf("b = %p
    ",b);
    
    	return 0;
    }
    

    小结

    • 数组是一片连续的内存空间
    • 数组的地址和数组首元素的地址意义不同
    • 数组名在大多数情况下被当成常量指针处理
    • 数组名其实并不是指针,不能将其等同于指针
  • 相关阅读:
    10.flask博客项目实战五之用户登录功能
    09.flask博客项目实战四之数据库
    08.flask博客项目实战三之表单
    07.flask博客项目实战二之模板使用
    06.flask博客项目实战一之项目框架搭建
    05.flask数据库
    04.flask表单
    03.flask模板
    idea 灵异事件之maven 缓存
    如何查看Spring Boot 默认的数据库连接池类型
  • 原文地址:https://www.cnblogs.com/yanyun888/p/9213161.html
Copyright © 2011-2022 走看看