回覆列表
  • 1 # 我是阿嘛

    C/C++不支援陣列整體賦值,可以在宣告陣列時整體初始化。無論陣列有多大,全部初始化為0的操作很簡單,如int a[3000]={0};就可以將a的3000個元素全部置0;若要賦其他值,例如全部賦值為7,寫成int a[3000]={7};則不行,這隻給a[0]賦值為7,其餘的都是0。在陣列長度較小時,可直接寫入資料初始化,如int a[5]={1,2,3,4,5};,若陣列太長,如前述a[3000],寫3000個數顯然是不現實的。遇到這種情況,可以定義一個帶引數的宏來簡化初始化的書寫,例如要把a[3000]全部初始化為9,可用以下程式碼:

    //#include "stdafx.h"//If the vc++6.0, with this line.

    #include "stdio.h"

    #define X(x) x,x,x,x,x,x,x,x,x,x//帶引數的宏,x是預賦之值

    int main(void){

    int a[3000]={X(X(X(9))),X(X(X(9))),X(X(X(9)))};//以賦9為例

    printf("%d %d %d\n",a[0],a[1499],a[2999]);//打幾個出來看看...

    return 0;

    }

  • 中秋節和大豐收的關聯?
  • 我家的松下空調調到制熱模式?