在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言-void類型作為萬能指針類型

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 10:04 ? 次閱讀

1. 前言

void類型在基本數據類型里是空類型無類型;

void類型常用來當做函數的返回值,函數形參聲明,表示函數沒有返回值,沒有形參。

void類型不能用來定義變量,因為它是空類型–可以理解為空類型

void abc;  //這是錯誤的

但是void是可以定義指針的,void*表示萬能型指針類型,可以與任何指針類型進行轉換,特別是內存拷貝里用的很多。

2. 內存拷貝函數 memcpy

系統提供函數: 內存拷貝函數

#include 
void *memcpy(void *dest, const void *src, size_t n);

**示例代碼:**memcpy函數過程

#include 
#include 
#include 

int main(int argc,char **argv)
{
	char str1[]="1234567890";
	char str2[100];
	int int_a[]={1,2,3,4,5,6,7,8,9,0};
	int int_b[10];
	int a=200;
	int b;
	int i;
	//拷貝字符串數組
	memcpy(str2,str1,sizeof(str1));
	printf("str1=%s\n",str1);
	printf("str2=%s\n",str2);
	//拷貝整數數組
	memcpy(int_b,int_a,sizeof(int_a));
	for(i=0;i<10;i++)
	{
		printf("%d ",int_a[i]);
	}
	printf("\n");
	for(i=0;i<10;i++)
	{
		printf("%d ",int_b[i]);
	}
	printf("\n");
	//拷貝變量
	memcpy(&b,&a,sizeof(a));
	printf("a=%d\n",a);
	printf("b=%d\n",b);
	
	return 0;
}

3. 自己編寫memcpy函數

#include 
#include 
#include 
void my_memcpy(void *p1,const void *p2,int cnt);
int main(int argc,char **argv)
{
	char str1[]="1234567890";
	char str2[100];
	int int_a[]={1,2,3,4,5,6,7,8,9,0};
	int int_b[10];
	int a=200;
	int b;
	int i;
	//拷貝字符串數組
	my_memcpy(str2,str1,sizeof(str1));
	printf("str1=%s\n",str1);
	printf("str2=%s\n",str2);
	//拷貝整數數組
	my_memcpy(int_b,int_a,sizeof(int_a));
	for(i=0;i<10;i++)
	{
		printf("%d ",int_a[i]);
	}
	printf("\n");
	for(i=0;i<10;i++)
	{
		printf("%d ",int_b[i]);
	}
	printf("\n");
	//拷貝變量
	my_memcpy(&b,&a,sizeof(a));
	printf("a=%d\n",a);
	printf("b=%d\n",b);
	return 0;
}

/*
內存拷貝函數
*/
void my_memcpy(void *p1,const void *p2,int cnt)
{
	char *str1=(char*)p1;
	char *str2=(char*)p2;
	int i;
	for(i=0;i;i++)>

4. 內存初始化函數: memset

memset函數常用于內存空間初始化,可以給空間賦初始值。

#include 
//void *memset(void *s, int c, size_t n);
//函數功能: 將指定空間賦值為指定的值。

#include 
#include 
#include 
int main(int argc,char **argv)
{
	int int_b[10];
	int b;
	int i;
    //memset(void *s, int c, size_t n);
	memset(int_b,0,sizeof(int_b));
	//拷貝整數數組
	for(i=0;i<10;i++)
	{
		printf("%d ",int_b[i]);
	}
	printf("\n");
	//拷貝變量
	memset(&b,0,sizeof(int_b));
	printf("b=%d\n",b);
	return 0;
}

5. 自己編寫memset

#include 
#include 
#include 
void my_memset(void *p,int c,int n);
int main(int argc,char **argv)
{
	int int_b[10];
	int b;
	int i;
    //memset(void *s, int c, size_t n);
	my_memset(int_b,0,sizeof(int_b));
	//拷貝整數數組
	for(i=0;i<10;i++)
	{
		printf("%d ",int_b[i]);
	}
	printf("\n");
	//拷貝變量
	my_memset(&b,0,sizeof(int_b));
	printf("b=%d\n",b);
	return 0;
}

void my_memset(void *p,int c,int n)
{
	char *str=(char*)p;
	int i;
	for(i=0;i;i++)>

6. 讀寫int類型數據到文件

在文件讀寫中,經常需要向文件里讀寫自定義數據。

#include 
#include 
int write_file();
int read_file();

int main(int argc,char **argv)
{
    write_file();
    read_file();
    return 0;
}

int write_file()
{
    int cnt;
    int a=123;
    /*1. 打開文件*/
    FILE *fp=fopen("test.txt","wb");
    if(fp==NULL)
    {
        printf("文件打開失敗.\n");
        return -1;
    }
    /*2. 寫入數據*/
    cnt=fwrite(&a,1,sizeof(a),fp);
    printf("成功寫入%d字節",cnt);
    /*3. 關閉文件*/
    fclose(fp);
    return 0;
}

int read_file()
{
    int cnt;
    int a;
    /*1. 打開文件*/
    FILE *fp=fopen("test.txt","rb");
    if(fp==NULL)
    {
        printf("文件打開失敗.\n");
        return -1;
    }
    /*2. 讀取數據*/
    cnt=fread(&a,1,sizeof(a),fp);
    printf("成功讀取%d字節\n",cnt);
    printf("a=%d\n",a);

    /*3. 關閉文件*/
    fclose(fp);
    return 0;
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137720
  • 指針
    +關注

    關注

    1

    文章

    481

    瀏覽量

    70610
  • void
    +關注

    關注

    0

    文章

    23

    瀏覽量

    9900
收藏 人收藏

    評論

    相關推薦

    void指針簡述

    為何在這里單獨提到空指針類型呢?主要是因為該指針類型很特殊。void類型很容易讓人想到是空的意思
    的頭像 發表于 09-09 08:57 ?1733次閱讀
    <b class='flag-5'>void</b><b class='flag-5'>指針</b>簡述

    C語言void指針的基本認識及典型應用

    C語言中,*類型就是指針類型,比如 int *p,double *q,雖然是不一樣的指針,但是大
    發表于 02-01 09:26 ?1140次閱讀

    C語言中數據類型介紹(基本類型、構造類型指針類型、空類型

    C語言數據類型包括:基本類型、構造類型指針類型、空
    發表于 07-19 09:09

    【設計技巧】指針的使用注意事項:空指針指針賦值、void *指針

    類型多么復雜,比如一個特別大的結構體,它的指針和一個 char型指針的大小本質上是一樣的,因為指針就是起始地址。 正式由于這個原因,(void
    發表于 08-20 08:30

    C語言指針必須要進行強制類型轉換?

    char c=255;[C] 純文本查看 復制代碼 pc=&c;[C] 純文本查看 復制代碼 pi=&i; pc=(char *)pi;//疑問處}既然所有
    發表于 03-06 04:14

    c語言指針詳解

    1.指針簡介 指針C語言中廣泛使用的一種數據類型。 運用指針編程是
    發表于 03-26 09:51

    什么是void指針void指針有何功能

    一般被稱為通用指針或叫泛指針。它是C語言關于純粹地址的一種約定。當某個指針void
    發表于 02-21 06:01

    C語言voidvoid指針深層探索

    1.概述 本文將對void關鍵字的深刻含義進行解說,并詳述voidvoid指針類型的使用方法與技巧。 2.
    發表于 09-21 11:36 ?166次下載

    C語言指針電子教程

    本資料是一份不錯的關于C語言指針的電子教程,希望對大家有所幫助... 指針簡介 指針C
    發表于 07-30 16:00 ?77次下載

    淺談void指針的高階用法

    通用指針或叫泛指針。它是C語言關于純粹地址的一種約定。當某個指針void
    的頭像 發表于 08-09 15:54 ?1691次閱讀
    淺談<b class='flag-5'>void</b> 型<b class='flag-5'>指針</b>的高階用法

    STM32編程:void指針高階用法舉例,設計一個通用掉電存儲子系統

    一般被稱為通用指針或叫泛指針。它是C語言關于純粹地址的一種約定。當某個指針void
    發表于 12-27 18:47 ?10次下載
    STM32編程:<b class='flag-5'>void</b><b class='flag-5'>指針</b>高階用法舉例,設計一個通用掉電存儲子系統

    一文揭秘C語言void指針

    void *表示一個“不知道類型”的指針,也就不知道從這個指針地址開始多少字節為一個數據。和用int表示指針異曲同工,只是更明確是“
    的頭像 發表于 02-02 17:18 ?1644次閱讀

    PLC指針類型與間接尋址詳解

    在西門子S7-300和S7-400的編程中經常需要調用一些系統功能或功能塊,在輸入參數時經常碰到有指針類型的參數,那么你對指針類型了解嗎?我第一次接觸
    的頭像 發表于 02-03 11:23 ?2470次閱讀

    什么是void指針

    C語言中,*類型就是指針類型,比如 int *p,double *q,雖然是不一樣的指針,但是大
    的頭像 發表于 02-13 15:02 ?1438次閱讀

    什么是C語言void*)類型

    大家在C語言的學習過程中肯定見過各種指針符號,如 int*, char* 等等等等。顧名思義,int*就是一個指向整形的指針,而char*則是一個指向字符的
    的頭像 發表于 02-24 14:31 ?3422次閱讀
    主站蜘蛛池模板: 高清性色生活片久久久 | 正在播放国产女免费 | 午夜色站| 91成人免费在线视频 | 国产看片视频 | 一国产大片在线观看 | 日本美女黄网站 | 欧美性黑人极品hd网站 | 欧美区亚洲区 | 午夜黄色小视频 | 在线视频资源 | 黄网站色成年片大免费软件 | 欧美xxxx色视频在线观看 | 一级做a爰片久久毛片免费 一级做a爰片久久毛片免费看 | 人人艹在线观看 | 99pao在线视频精品免费 | 114毛片免费观看网站 | 久热福利 | 么公的好大好硬好深好爽在线视频 | 在线视频一区二区 | 久久天天躁夜夜躁狠狠躁2020 | 亚洲精品香蕉婷婷在线观看 | 日韩a毛片免费全部播放完整 | 奇米米奇777 | 色婷婷综合在线 | 日本国产中文字幕 | 拍真实国产伦偷精品 | 狂野欧美性色xo影院 | www深夜视频在线观看高清 | 国产人成午夜免费噼啪视频 | 欧美在线一级视频 | 黄色四虎影院 | 日本免费一区二区视频 | a久久| 男男扒开后菊惩罚 | 亚洲欧美日韩综合一区 | 国产免费人成在线看视频 | 如果我们是季节韩剧在线观看 | 在线免费视频 | 伊人黄色网 | 九九热在线视频观看这里只有精品 |