zoukankan      html  css  js  c++  java
  • c语言中数组相关问题

    c语言中数组相关问题:

    1.数组基本定义: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

     

    2.语法:  数据类型 + 数组名+[元素个数]

    3.初始化:初始化方式: int  a[5]={1,2,3,4,5}。

     

    编译器会根据初始化使用的元素个数自动提供个数。比如:inta[]={1,2,3},元素个数为3.

     

    数组使用时应该注意的事项

    1,如果初始化时在后方元素赋值不全,没有初始化的元素,默认值为0 ;

    2.数组中每一个变量称为元素。每个变量的位置是确定的。使用从0开始的序号进行访问。序号称为下标或者索引。

    3.存放一维数组的数组称为二维数组。

    4.数组的类型:数据类型表示数组元素的类型是什么。元素中的数据类型是统一的。

    5.数组元素个数不允许时浮点数。可以是整数表达式。数组元素就是变量,直接可以用:如sum=a[1]+a[2];

    6数组初始化方式:如:inta[5]={1,2,3,4,5},如果初始化时不完全:没有初始化的元素,默认值为0 ;

    7.编译器会根据初始化使用的元素个数自动提供个数,如下文:

    int a[]={1,2,3},元素个数为3.,sizeof(a)=12(每个元素占四个字节所以一共12字节);

    14,使用数组求n个数的统计

    15.栈和堆的概念。利用数组模拟栈的结构。

     

    下面介绍一个数组在打印的时候溢出的问题:

    //

    // main.c for  Xcode6.0

    //  当我定义了一个可以盛放十个元素的数组arry[10]并赋值之后,使用printf函数加一个for循环体进行打印,这个时候有趣的事情发生了:

    在printf下方的循环体中,由于循环条件设置不当,导致我对数组的打印下标越界。当打印a[10]时,printf函数自动将内存中本来存在的乱码打印出来了。

    所以,下标越界问题,是程序猿使用数组时经常犯,也必须注意的问题。因为,这个bug编译器是不会报错的。




    其实内存中数组的存放方式是这样的:








    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    2019.1.10英语笔记
    2019.1.9专业课笔记
    团队触发器
    团队脚本备份
    导表
    oslo.config
    nginx启动、重启、关闭
    常见的awk内建变量
    LVM
    Django, one-to-many, many-to-many
  • 原文地址:https://www.cnblogs.com/wahy/p/4817263.html
Copyright © 2011-2022 走看看