C語言 數組長度計算 - C語言零基礎入門教程


目錄

零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門

一.計算數組長度

1.經典案例

/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 數組長度計算
//@Time:2021/06/12 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
/******************************************************************************************/

#include "stdafx.h"
#include<stdlib.h>
#include<stdio.h>

void main()
{
    int arr[] = { 1, 2, 3 };
    int len = sizeof(arr) ;   //錯誤的計算數組大小
    printf("sizeof(arr) : %d\n",len);
    for (int i = 0; i < len; i++){
        printf("%d,", arr[i]);
    }
    printf("\n");
    system("pause");
}
/*
輸出結果:

sizeof(arr) : 12
1,2,3,-858993460,9697168,11737625,1,13017304,13018680,123799719,11735310,11735310,
請按任意鍵繼續. . .
*/

是不是很懵逼,,除了會輸出 以外,還會輸出雜亂無章的數字,但一共是輸出 12 個。因為數組的內存是動態分配的,到了元素 3 以后的元素都是新分配的,並不一定是空,隨機數。

因為 c 語言數組是一片連續的空間,元素 3 的空間是有數據的,數據被正常讀取出來;而元素 4,5,6...11 一些沒有實際意義的雜亂無章的數字。

出現隨機數原因:數組一共就3個元素。通過 sizeof 函數計算的數組個數確是 12,那么一開始我們在獲取數組元素個數的時候就出錯了;

2.計算數組長度

/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 數組長度計算
//@Time:2021/06/12 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
/******************************************************************************************/

#include<stdlib.h>
#include<stdio.h>

void main()
{
    int len = 0;
    //int整形數組
    int arr_int[] = { 1, 2, 3 };
    len = sizeof(arr_int) / sizeof(arr_int[0]);
    printf("sizeof(arr_int) : %d\n", len);
    for (int i = 0; i < len; i++) {
        printf("%d,", arr_int[i]);
    }
    printf("\n");
    printf("------------------------------------------\n");
    //float浮點數數組
    float arr_float[] = { 1.5, 2.6, 3.9 };
    len = sizeof(arr_float) / sizeof(arr_float[0]);
    printf("sizeof(arr_float) : %d\n", len);
    for (int i = 0; i < len; i++) {
        printf("%f,", arr_float[i]);
    }
    printf("\n");
    printf("------------------------------------------\n");
    //double浮點數數組
    double arr_double[] = { 10.2, 23.5, 33.3 };
    len = sizeof(arr_double) / sizeof(arr_double[0]);
    printf("sizeof(arr_double) : %d\n", len);
    for (int i = 0; i < len; i++) {
        printf("%f,", arr_double[i]);
    }
    printf("\n");
    printf("------------------------------------------\n");
    //char字符串數組
    char arr_char[] = "fs123";
    len = sizeof(arr_char) / sizeof(arr_char[0]);
    printf("sizeof(arr_char) : %d\n", len);
    for (int i = 0; i < len; i++) {
        printf("%c,", arr_char[i]);
    }
    printf("\n");
    system("pause");
}
/*
輸出:
sizeof(arr_int) : 3
1,2,3,
------------------------------------------
sizeof(arr_float) : 3
1.500000,2.600000,3.900000,
------------------------------------------
sizeof(arr_double) : 3
10.200000,23.500000,33.300000,
------------------------------------------
sizeof(arr_char) : 6
f,s,1,2,3, ,
請按任意鍵繼續. . .
*/

最后一個字符串數組雖然只有 5 個元素,但是別忘了,字符串末尾還有一個結束符 \0,所以一共 6 個字符;

二.猜你喜歡

  1. 安裝 Visual Studio
  2. 安裝 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸載
  4. Visual Studio 2003/2015 卸載
  5. C 語言格式控制符/占位符
  6. C 語言邏輯運算符
  7. C 語言三目運算符
  8. C 語言逗號表達式
  9. C 語言 sizeof 和 strlen 函數區別
  10. C 語言 strcpy 和 strcpy_s 函數區別
  11. C 語言 memcpy 和 memcpy_s 區別
  12. C 語言 數組定義和使用
  13. C 語言 數組遍歷
  14. C 語言 數組排序 – 冒泡法排序
  15. C 語言 數組排序 – 選擇法排序
  16. C 語言 數組排序 – 插入法排序
  17. C 語言 數組排序 – 快速法排序
  18. C 語言 數組下標越界
  19. C 語言 數組內存溢出
  20. C 語言 數組下標越界和內存溢出區別
  21. C 語言 數組長度計算

未經允許不得轉載:猿說編程 » C 語言 數組長度計算

本文由博客 - 猿說編程 猿說編程 發布!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM