首頁>Club>
7
回覆列表
  • 1 # 如同無路可走

    結構體同樣可以看做一個基本資料型別。刪除結構體陣列中的一個值,就像刪除一個普通陣列中的值一樣的。普通陣列的刪除是將後面的資料向前移動,達到覆蓋掉的效果比如:a[4]要刪除第二個元素。那麼把a[1]=a[2];a[2]=a[3];最後一個不要動,也最好別去訪問它,就相當於把第二個元素刪除了。結構體跟上面類似,但是結構體是你自定義的資料,所以在定義中,你要給它過載賦值符號(也就是=),要不然賦值的過程中會出錯

  • 2 # 使用者2458114238191884

    不過這裡存在一個問題,你一個結構體陣列前移的時候,如何判斷有多少個元素要前移呢。。。。

    所以我的做法是在結構體裡面定義一個標示符int flag。。。。

    當對這個結構體陣列元素賦值時,如a[10].name="KING" 時,那麼就是說下標值為10的元素是存在的,賦完值後,來個a[10].flag=1 來標記一下。。。。

    int i=5;

    for(int j=i+1;a[j].flag==1;i++,j++)

    {

    a[i]=a[j];

    /* 結構體陣列可以直接這樣子做,它會自動把a[i]裡面的變數等於a[j]裡面對應的變數 */

    }

    a[i].flag=0;

  • 中秋節和大豐收的關聯?
  • 倉木麻衣《doublerainbow》英文歌詞的中文翻譯?