C/C++ 使用memset對陣列進行整體賦值以及memcpy對陣列複製
阿新 • • 發佈:2019-01-08
對陣列的整體賦值,以及兩個陣列間的複製容易出錯,這裡使用string標頭檔案中的memset和memcpy進行
不必遍歷陣列,速度快。
之前沒有標頭檔案,顯示decla
標頭檔案:
程式碼:
/* Project: 陣列的整體賦值與複製 Date: 2018/07/31 Author: Frank Yu memset(陣列名,0或-1,位元組) memcpy(陣列名,陣列名,位元組) */ #include<iostream> #include<cstring> //memset需要標頭檔案 #include<cstdio> #define n 5 using namespace std; int main() { int a[n]; int b[n]; memset(a,0,sizeof(a));//初始化為0 //memset(b,1,sizeof(b));//初始化為1,錯誤 memset(b,-1,sizeof(b)); printf("請輸入%d個數:\n",n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } printf("第一個陣列為:\n"); for(int i=0;i<n;i++) { printf("%d ",a[i]); } printf("\n"); printf("第二個陣列為:\n"); for(int i=0;i<n;i++) { printf("%d ",b[i]); } printf("\n"); memcpy(a,b,sizeof(b));//b的元素複製給a printf("第一個陣列被第二個陣列覆蓋後:\n"); for(int i=0;i<n;i++) { printf("%d ",a[i]); } return 0; }
結果截圖:
有問題請下方評論,轉載請註明出處,並附有原文連結,謝謝!如有侵權,請及時聯絡。