1. 程式人生 > >C/C++ 使用memset對陣列進行整體賦值以及memcpy對陣列複製

C/C++ 使用memset對陣列進行整體賦值以及memcpy對陣列複製

對陣列的整體賦值,以及兩個陣列間的複製容易出錯,這裡使用string標頭檔案中的memset和memcpy進行

不必遍歷陣列,速度快。

之前沒有標頭檔案,顯示decla

標頭檔案:

Stackoverflow的解釋

程式碼:

/*
    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;
}

結果截圖:

結果截圖

有問題請下方評論,轉載請註明出處,並附有原文連結,謝謝!如有侵權,請及時聯絡。