中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網站正在建設中卡通源碼百度關鍵詞推廣教程

網站正在建設中卡通源碼,百度關鍵詞推廣教程,計算機本科論文 網站建設,wordpress圖片主題cxudy作者:小樹苗渴望變成參天大樹 作者宣言:認真寫好每一篇博客 作者gitee:gitee 如 果 你 喜 歡 作 者 的 文 章 ,就 給 作 者 點 點 關 注 吧! void前言一、 void 關鍵字二、 void修飾函數返回值和參數三、void指針3.1void * 定義的…

作者:小樹苗渴望變成參天大樹
作者宣言:認真寫好每一篇博客
作者gitee:gitee
在這里插入圖片描述
如 果 你 喜 歡 作 者 的 文 章 ,就 給 作 者 點 點 關 注 吧!

void

  • 前言
  • 一、 void 關鍵字
  • 二、 void修飾函數返回值和參數
  • 三、void指針
    • 3.1void * 定義的指針變量可以進行運算操作嗎
    • 3.2void * 用來設計通用接口
  • 四、總結


前言

我相信再大家潛意識里對void的理解解釋空類型的意思吧,覺得void的作用并不是那么的多,這篇博客讓你充分認識到void的含義以及作用


一、 void 關鍵字

void通俗的來說和其他的數據類型世同級的,但是void關鍵字的用法非常多,他也有一些做不到的事情。

void是否可以定義變量?

#include <stdio.h>
#include <windows.h>
int main()
{
void a;
system("pause");
return 0;
}

運行結果:
在這里插入圖片描述

我們看到void是定義不了變量的,我們知道用數據類型定義變量是為其分配多大的空間,而類型的大小就起到開辟多大空間的作用,那讓我們來看看void的大小是多少:

在這里插入圖片描述
這下我們知道為什么void定義不了變量了吧,這是再vs2019上看到的結果,那我們再vscode的gcc編譯器看看結果:
在這里插入圖片描述

我們看到再gcc編譯器上的void的大小是1,為什么還是不可以定義變量呢?

void本身就被編譯器視為空類型,強制的不允許定義變量

總結:為何 void 不能定義變量?
定義變量的本質:開辟空間
而void作為空類型,理論上是不應該開辟空間的,即使開了空間,也僅僅作為一個占位符看待,所以,既然無法開辟空間,那么也就無法作為正常變量使用,既然無法使用,編譯器干脆不讓他定義量。

二、 void修飾函數返回值和參數

場景1:void用來作為函數返回值

test()
{;
}
int main()
{int a = test();printf("%d", a);system("pause");return 0;
}

在這里插入圖片描述
我們看到函數不用返回值是正確的,并且默認返回的int類型的,不用void會讓程序員不知道你是沒有返回值還是返回int類型,那void的好處是什么呢??1.占位符,讓用戶明確不需要返回值。2.告知編譯器,返回值無法接收

場景2:void 作為函數參數
我們先來看一個代碼:不帶參數的函數傳參

void test()//默認不要參數
{;
}
int main()
{test(2,5,"niaho");system("pause");return 0;
}

這樣的代碼并不會出現錯誤,原因是你傳進去,但沒有東西接收

void test(void)//明確告訴你不要參數
{;
}
int main()
{test(2,5,"niaho");system("pause");return 0;
}

這樣就會報錯,明確說不用參數,你傳參就會報錯

結論:
1.如果一個函數沒有參數,將參數列表設置成void,是一個不錯的習慣,因為可以將錯誤明確提前發(fā)現
2.另外,閱讀你代碼的人,也一眼看出,不需要參數。相當于"自解釋"

題外話,盡管如此,如果這點你不習慣,也不勉強。

三、void指針

void不能定義變量,那么void*呢?

#include <stdio.h>
#include <windows.h>
int main()
{void* p = NULL; //可以system("pause");return 0;
}

在這里插入圖片描述

我們看到可以通過并且沒有報警,為什么void可以呢?因為void是指針,是指針,空間大小就能明確出來

我們再來看看void*有那些特性:

#include <stdio.h>
#include <windows.h>
int main()
{
void *p = NULL;
int *x = NULL;
double *y = NULL;
p = x; //雖然類型不同,但是編譯器并不報錯
p = y; //同上
x=p;
y=p
system("pause");
return 0;
}

在這里插入圖片描述

我們看到編譯器葉沒有報錯,我們可以得出如下結論:
1.void的作用是用來接受任意指針類型的。
2.任意指針也可以接受void
類型的。

這塊在后面如果想設計出通用接口,很有用,例如:

/void * memset ( void * ptr, int value, size_t num );

3.1void * 定義的指針變量可以進行運算操作嗎

我們上面介紹了void可以定義指針變量,我們知道指針變量是可以進行運算操作的,那void*的指針可以進行運算操作嗎?我們一起來看看:

(NULL實際就是在0進行強轉變成void*類型)

#include <stdio.h>
#include <windows.h>
int main()
{
void *p = NULL;
p++; //報錯
p += 1; //報錯
system("pause");
return 0;
}

在這里插入圖片描述
我們之前在指針那一節(jié)說過,指針運算的大小和類型有關,例如int的類型,加1就跳過一個整型,那么void在vs2019上不知道大小的,自然加1是不知道的,所以會報錯。

那讓我們來看一下gcc編譯器上的結果吧
在這里插入圖片描述
我們看到gcc編譯器上可以通過,原因是在gcc編譯器的void大小為1,又了固定的大小

3.2void * 用來設計通用接口

對于一個函數我們需要接受的類型可能不一樣,這時候就需要用void*作為接口來實現,這里我不在具體介紹那些是需要接口的例子,大家可以看我之前謝的關于有接口的例子:
qsort
內存操作函數

四、總結

通過這篇博客,我希望大家對void的類型的含義和用法又有了更深的理解,這篇的難度不大,只是為了拓展我們的知識面,希望能夠版主到大家,今天我們就說到這里,我們下篇再見
在這里插入圖片描述

http://www.risenshineclean.com/news/49418.html

相關文章:

  • 答題網站怎么做小說網站排名前十
  • 免備案cdn保定關鍵詞優(yōu)化軟件
  • 重慶的汽車網站建設2022最新熱點事件及點評
  • 網頁游戲傳奇霸業(yè)seo網站推廣下載
  • 偷拍哪個網站做的好新聞營銷發(fā)稿平臺
  • 鄭州哪家公司做網站好關鍵詞com
  • wordpress禁止用戶儀表盤網站seo方法
  • 南京h5 網站建設展示型網站設計公司
  • 響應式網站用什么做項鏈seo關鍵詞
  • 邯鄲做網站公司哪家好seo崗位工資
  • 手機網站靜態(tài)動態(tài)關鍵詞全網搜索
  • 東莞做網站的公司個人代運營一般怎么收費
  • 北京網站建設網絡公司百度競價調價軟件
  • 廣州建設銀行招聘網站百度查看訂單
  • 汽修行業(yè)做環(huán)評網站刷神馬seo排名首頁排名
  • 設計頁面導航一鍵seo提交收錄
  • 個人可以做慈善網站嗎今日熱點頭條新聞
  • 東莞做網站優(yōu)化哪家好北京seo專業(yè)團隊
  • 電子商務網站建設與管理李建忠網絡推廣的方法有多選題
  • 學院網站建設的目的及定位全網營銷系統(tǒng)怎么樣
  • 網站開發(fā)項目經理招聘網絡營銷推廣方式
  • 杭州網頁設計公司seo推廣和百度推廣的區(qū)別
  • 定制品牌湘潭seo快速排名
  • 深圳寶安區(qū)最新通告泉州seo網站排名
  • 順德品牌網站建設公司新聞今天的最新新聞
  • 手機配件網站模板最經典最常用的網站推廣方式
  • 上海好的高端網站建設今日最新抗疫數據
  • 成都網頁設計班自學seo能找到工作嗎
  • 福州網站建設方案書如何做好推廣
  • app產品網站建設優(yōu)化網站有哪些方法