更多课程 选择中心

C/C++培训
达内IT学院

400-111-8989

C / C ++语言中的数组讲解,C / C ++语言数组

  • 发布:C++培训
  • 来源:学习笔记
  • 时间:2017-06-05 19:58

数组是存储在连续内存位置的项的集合,这个想法是将多个相同类型的项声明在一起。

数组声明:

在C中,我们可以通过指定它的大小或通过初始化或者两者来声明数组。

  1. // Array declaration by specifying size  
  2. int arr[10];  
  3. Run on IDE  
  4. // Array declaration by initializing elements   
  5. int arr[] = {10, 20, 30, 40}  
  6.    
  7. // Compiler creates an array of size 4.   
  8. // above is same as  "int arr[4] = {10, 20, 30, 40}"  
  9. Run on IDE  
  10. // Array declaration by specifying size and initializing   
  11. // elements   
  12. int arr[6] = {10, 20, 30, 40}  

访问数组元素:

使用整数索引来访问数组元素,数组索引从0开始,直到数组的大小减去1.以下是几个例子。

  1. int main()  
  2. {  
  3.   int arr[5];  
  4.   arr[0] = 5;  
  5.   arr[2] = -10;  
  6.   arr[3/2] = 2; // this is same as arr[1] = 2  
  7.   arr[3] = arr[0];  
  8.    
  9.   printf("%d %d %d %d", arr[0], arr[1], arr[2], arr[3]);  
  10.    
  11.   return 0;  
  12. }  

Output:

5 2 -10 5

无索引越界检查:

C中没有任何索引不合格检查,例如以下程序编译正常,但运行时可能会产生意外的输出。

  1. int main()  
  2. {  
  3.   int arr[2];  
  4.    
  5.   printf("%d ", arr[3]);  
  6.   printf("%d ", arr[-2]);  
  7.    
  8.   return 0;  
  9. }  

此外,在C中,初始化具有指定大小的元素的数组不是编译器错误, 例如下面的程序编译好。

  1. int main()  
  2. {  
  3.    
  4.   // Array declaration by initializing it with more  
  5.   // elements than specified size.  
  6.   int arr[2] = {10, 20, 30, 40, 50};  
  7.    
  8.   return 0;  
  9. }  
该程序用C ++编译不能通过,如果我们将上述程序保存为.cpp,程序将生成编译器错误“错误:'int [2]'的初始化程序太多。

再给读者显示一下数组元素存储在连续的位置代码展示:


  1. int main()  
  2. {  
  3.   // an array of 10 integers.  If arr[0] is stored at  
  4.   // address x, then arr[1] is stored at x + sizeof(int)  
  5.   // arr[2] is stored at x + sizeof(int) + sizeof(int)  
  6.   // and so on.  
  7.   int arr[5], i;  
  8.    
  9.   printf("Size of integer in this compiler is %u\n", sizeof(int));  
  10.    
  11.   for (i=0; i<5; i++)  
  12.     // The use of '&' before a variable name, yields  
  13.     // address of variable.  
  14.     printf("Address arr[%d] is %u\n", i, &arr[i]);  
  15.    
  16.   return 0;  
  17. }  

Output:

Size of integer in this compiler is 4 Address arr[0] is 2686728 Address arr[1] is 2686732 Address arr[2] is 2686736 Address arr[3] is 2686740 Address arr[4] is 2686744这些都是程序运行的一些小技术点,希望对读者有所帮组。。。。。。。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C++语言指针详解,带你详细了解C++语言指针
下一篇: C ++中的智能指针知识

C语言创建windows窗口实例

C++回调函数是什么?

C++ shared_ptr和动态数组

C语言有哪些关键词,C语言44个关键词大全

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省