欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C/C++ 中memset() 函數(shù)詳解及其作用介紹

 更新時間:2020年07月21日 16:43:57   作者:華麗的雙魚  
這篇文章主要介紹了C/C++ 中memset() 函數(shù)詳解及其作用介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

memset 函數(shù)是內(nèi)存賦值函數(shù),用來給某一塊內(nèi)存空間進(jìn)行賦值的;

包含在<string.h>頭文件中,可以用它對一片內(nèi)存空間逐字節(jié)進(jìn)行初始化;

原型為 :

void *memset(void *s, int v, size_t n);

這里s可以是數(shù)組名,也可以是指向某一內(nèi)在空間的指針;

v為要填充的值;

n為要填充的字節(jié)數(shù);

例子:

struct data
{
char num[100];
char name[100];
int n;
};
struct data a, b[10];
 
memset( &a, 0, sizeof(a) ); //注意第一個參數(shù)是指針類型,a不是指針變量,要加&
memset( b, 0, sizeof(b) ); //b是數(shù)組名,就是指針類型,不需要加&

例2:

char str[9];

我們用memset給str初始化為“00000000”,用法如下

memset(str,0,8);

注意,memset是逐字節(jié)拷貝的。

例3:

int num[8];

我們用memset給str初始化為{1,1,1,1,1,1,1,1},

memset(num,1,8);//這樣是不對的

一個int是4個字節(jié)的,8個int是32個字節(jié),所以首先要賦值的長度就不應(yīng)該為8而是32。

因為memset是逐字節(jié)拷貝,以num為首地址的8字節(jié)空間都被賦值為1,

即一個int變?yōu)?X00000001 00000001 00000001 00000001,顯然,把這個數(shù)化為十進(jìn)制不會等于1的。

所以,在memset使用時要千萬小心,在給char以外的數(shù)組賦值時,只能初始化為0或者-1。

(如果用memset(a,1,20);
就是對a指向的內(nèi)存的20個字節(jié)進(jìn)行賦值,每個都用ASCII為1的字符去填充,轉(zhuǎn)為二進(jìn)制后,1就是00000001,占一個字節(jié)。一個INT元素是4字節(jié),合一起就是1000000010000000100000001,就等于16843009,就完成了對一個INT元素的賦值了。)

#include <memory.h> //我試了一下,C語言這么用,C++還可以用<cstring> 
#include <stdio.h>
 void main( void ) 
{ 
 char buffer[] = "This is a test of the memset function"; 
 printf( "Before: %s\n", buffer );
 memset( buffer, '*', 4 );
 printf( "After: %s\n", buffer );
 } 

輸出: 

Before: This is a test of the memset function 
After: **** is a test of the memset function 

到此這篇關(guān)于C/C++ 中memset() 函數(shù)詳解及其作用介紹的文章就介紹到這了,更多相關(guān)C++  memset() 函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • json error: Use of overloaded operator [] is ambiguous錯誤的解決方法

    json error: Use of overloaded operator [] is ambiguous錯誤的解決方

    今天小編就為大家分享一篇關(guān)于json error: Use of overloaded operator [] is ambiguous錯誤的解決方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 詳解C++異常處理三個重要組成部分

    詳解C++異常處理三個重要組成部分

    這篇文章主要為大家介紹了C++異常處理的三個重要組成部分示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 基于一個簡單定長內(nèi)存池的實現(xiàn)方法詳解

    基于一個簡單定長內(nèi)存池的實現(xiàn)方法詳解

    本篇文章對一個簡單定長內(nèi)存池的實現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • OpenCV實現(xiàn)視頻綠幕背景替換功能的示例代碼

    OpenCV實現(xiàn)視頻綠幕背景替換功能的示例代碼

    這篇文章主要介紹了如何利用OpenCV實現(xiàn)視頻綠幕背景替換功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)OpenCV有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2023-02-02
  • 淺析C語言中sscanf 的用法

    淺析C語言中sscanf 的用法

    以下是對C語言中sscanf函數(shù)的使用方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • vscode 安裝go第三方擴(kuò)展包填坑記錄的詳細(xì)教程

    vscode 安裝go第三方擴(kuò)展包填坑記錄的詳細(xì)教程

    這篇文章主要介紹了vscode 安裝go第三方擴(kuò)展包填坑記錄,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 全面解析C++中的new,operator new與placement new

    全面解析C++中的new,operator new與placement new

    以下是C++中的new,operator new與placement new進(jìn)行了詳細(xì)的說明介紹,需要的朋友可以過來參考下
    2013-09-09
  • 一文帶你掌握C++中的繼承

    一文帶你掌握C++中的繼承

    繼承機制是面向?qū)ο蟪绦蛟O(shè)計使代碼可以復(fù)用的最重要的手段,它允許程序員在保持原有類特性的基礎(chǔ)上進(jìn)行擴(kuò)展,增加功能,本文詳解介紹了C++中的繼承,感興趣的同學(xué)可以借鑒一下
    2023-05-05
  • 深入淺出理解C語言初識結(jié)構(gòu)體

    深入淺出理解C語言初識結(jié)構(gòu)體

    C?數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結(jié)構(gòu)是?C?編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲不同類型的數(shù)據(jù)項,本篇讓我們來了解C?的結(jié)構(gòu)體
    2022-02-02
  • C++ 中const對象與const成員函數(shù)的實例詳解

    C++ 中const對象與const成員函數(shù)的實例詳解

    這篇文章主要介紹了C++ 中const對象與const成員函數(shù)的實例詳解的相關(guān)資料,希望通過本文能讓大家徹底掌握該如何使用,需要的朋友可以參考下
    2017-08-08

最新評論