C11数组

原创 2015年07月07日 23:25:28
数组
   为什么需要数组
         为了解决大量同类型数据的存储和使用问题
         为了模拟现实世界
   数组的分类
          一维数组
             怎样定义一维数组
                  为n个变量连续分配存储空间
                  所有变量数据内型必须相同
                  所有变量所占的字节大小必须相等
               
              例子
                   int a[5];
        一维数组名不代表数组中所有的元素
        一维数组名代表数组第一个元素的地址
        有关一维数组的操作
           初始化
              完全初始化
                  int a[5] = {1,2, 3, 4, 5};
              不完全初始化,未被初始化的元素自动为零
                  int a[5] = {1, 2, 3};  
               不初始化,所有元素是垃圾值,对某个元素赋值其他还是垃圾值
                  int a[5];
                清零       我的问题是不是可以清1  试数后可以
                   int a[5] = {0};
                错误的写法:
                   int a[5];---
                   a[5] = {1, 2, 3, 4, 5}; ---   //错误 a[5]表示的是下标
                  只有在定义数组的同时才可以整体赋值
                  其他情况下整体赋值都是错误的
                  在定义的时候5(如 int a[5])才表示是个数,在其他地方表示的是下标(元


素的位置)(如 a[5])
                  
                  int a[5] = {1, 2, 3, 4, 5};
                  a[5] = 100;  //error  因为没有a[5]这个元素,最打只有a[4] 
        
                   int a[5] = {1, 2, 3, 4, 5};
                   int b[5];
                   如果要把a数组的值全部复制到b数组
                         错误的写法;
                             b = a; //error相等与把a[0]的地址赋值b[0]的地址会报错
  因为数组的5个元素不是用a代表的是用a[0]..a[4]代表的,a代表a数组第一个元素a[0]的地址
                                                      b代表b数组第一个元素b[0]的地址   


 
                   通过试数 printf("%d\n", &a[0]);// 显示地址为1244980
                       printf("%d\n", a);    // 显示地址为1244980
1244980




                          正确的写法
                            for (i=0; i<5; ++i)
                                 b[i] = a[i];    
                   赋值
                        int a[5];
           
                        scanf("%d", &a[0]);
                        scanf("%d", &a[3]);
               要自己写代码实现或用工具   
                   排序
                   求最大/最小
                   倒置
                   查找
                   插入
                   删除




元素一定是连续分配存储空间的
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C字符串数组初始化为空串 (2009-11-27 09:36:15)

转载 在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式: (1) char str[10]=""; (2) char st...

SPOJ NWERC11C Movie collection 树状数组,线段树

//线段树,用id[]标记,只是insert的点,不更改原来的值,然后将插入的下表记录到id[]中//和 uva 11987 Almost Union-Find类似,不过此题是和并查集相关的//莫非这...

c指针数组资源

  • 2014-11-26 23:53
  • 39.07MB
  • 下载

11) 为STL容器和数组提供统一的接口DataSet [原创,泛型编程,自由下载转载,需注明出处]

在一些产品上,对于数据块,有些人喜欢用数组,比较典型的C程序员,有些人喜欢用STL容器,对于框架操作,我们通常希望存取这些对象能够使用一套统一的接口去存取它,因为从概念上讲,它们无非就是一组数据的集合...

C言语实现lua数组

  • 2013-11-18 20:05
  • 6.04MB
  • 下载

Java数组最顶级的11大方法,帮助你解决工作流程问题

0.  声明一个数组(Declare an array) 1 2 3 String[] aArray = new String[5...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)