亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

剖析C語(yǔ)言關(guān)鍵字之void,const,return

 更新時(shí)間:2022年01月07日 15:02:05   作者:我說(shuō)  
這篇文章主要為大家介紹了C語(yǔ)言關(guān)鍵字之void,const,return,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

return

首先我們弄清楚c語(yǔ)言內(nèi)存分配的方式

在這里插入圖片描述

然后我們看一段代碼:

#pragma warning(disable:4996)
#include<stdio.h>
char* string()
{
	char arr[] = "hello world";
	return arr;
}
int main()
{
	char* s = string();
	printf("%s", s);
	return 0;
}

在這里插入圖片描述

當(dāng)運(yùn)行到printf函數(shù)的時(shí)候,s指向的內(nèi)容仍是”hello world“,但為什么最后打印出來(lái)就是亂碼了?

在這里插入圖片描述

在這里插入圖片描述

我們先看棧區(qū)中內(nèi)存的分配

當(dāng)string函數(shù)執(zhí)行完時(shí),它創(chuàng)造的棧幀就被銷毀了,可這里的銷毀并不是將其的數(shù)據(jù)清零,而是將其設(shè)置為可覆蓋的數(shù)據(jù)

但為什么最后又亂碼了呢?

那是因?yàn)閜rintf也是一個(gè)函數(shù),也要?jiǎng)?chuàng)造空間,所以將string所創(chuàng)造的棧幀給覆蓋了

在這里插入圖片描述

所以我們就完美地解釋了為什么會(huì)亂碼的原因

void

一.可做為函數(shù)的通用接口

例:

在這里插入圖片描述

運(yùn)用:char* s = (char*)malloc(sizeof(char));

原因:

void類型的指針可被任意類型的指針接受,也可以接受任意類型的指針

二.void不能修飾變量

原因:編譯器不知道給變量分配多少空間

三.void修飾函數(shù)返回值

占位符,告知用戶不用返回值

假如不加,默認(rèn)是int類型的返回值

const

const修飾的變量不能直接被修改,但能通過(guò)指針

但是const仍有它的意義
1.讓編譯器提前告訴我們不該修改的變量被修改了
2.讓看源碼的童鞋知道這里不能被修改

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C++11中移動(dòng)構(gòu)造函數(shù)案例代碼

    C++11中移動(dòng)構(gòu)造函數(shù)案例代碼

    C++11 標(biāo)準(zhǔn)中為了滿足用戶使用左值初始化同類對(duì)象時(shí)也通過(guò)移動(dòng)構(gòu)造函數(shù)完成的需求,新引入了 std::move() 函數(shù),它可以將左值強(qiáng)制轉(zhuǎn)換成對(duì)應(yīng)的右值,由此便可以使用移動(dòng)構(gòu)造函數(shù),對(duì)C++11移動(dòng)構(gòu)造函數(shù)相關(guān)知識(shí)感興趣的朋友一起看看吧
    2023-01-01
  • C++中const應(yīng)放在類型前還是后

    C++中const應(yīng)放在類型前還是后

    之前遇到小伙伴問(wèn)C++中const加在類型名前和變量名前的區(qū)別,今天給大家簡(jiǎn)單分析下。
    2016-05-05
  • C語(yǔ)言實(shí)現(xiàn)個(gè)人通訊錄管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)個(gè)人通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)個(gè)人通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 求斐波那契(Fibonacci)數(shù)列通項(xiàng)的七種實(shí)現(xiàn)方法

    求斐波那契(Fibonacci)數(shù)列通項(xiàng)的七種實(shí)現(xiàn)方法

    本篇文章是對(duì)求斐波那契(Fibonacci)數(shù)列通項(xiàng)的七種實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++有限狀態(tài)機(jī)實(shí)現(xiàn)詳解

    C++有限狀態(tài)機(jī)實(shí)現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了C++有限狀態(tài)機(jī)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C語(yǔ)言詳解如何實(shí)現(xiàn)順序棧

    C語(yǔ)言詳解如何實(shí)現(xiàn)順序棧

    順序棧,就是用一組地址連續(xù)的存儲(chǔ)單元來(lái)存放棧元素,然后用一個(gè)棧結(jié)構(gòu)去維護(hù)一個(gè)棧。在C中,可用動(dòng)態(tài)開辟的數(shù)組去表示,維護(hù)的棧結(jié)構(gòu)需要有一個(gè)棧底和一個(gè)棧頂指針
    2022-04-04
  • C語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)開辟存儲(chǔ)楊輝三角

    C語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)開辟存儲(chǔ)楊輝三角

    這篇文章主要介紹了如何利用C語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)開辟存儲(chǔ)楊輝三角,可以靈活的開辟空間,充分的利用空間。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2022-03-03
  • 一文詳解Qt中線程的實(shí)際應(yīng)用

    一文詳解Qt中線程的實(shí)際應(yīng)用

    為了讓程序盡快響應(yīng)用戶操作,在開發(fā)應(yīng)用程序時(shí)經(jīng)常會(huì)使用到線程。這篇文章就來(lái)和大家介紹一下Qt中線程的實(shí)際應(yīng)用,感興趣的小伙伴可以了解一下
    2023-03-03
  • C++學(xué)習(xí)筆記之pimpl用法詳解

    C++學(xué)習(xí)筆記之pimpl用法詳解

    在編寫穩(wěn)定代碼是,管理好代碼間的依賴性是不可缺少的一個(gè)環(huán)節(jié)。特別是庫(kù)文件的編寫中,減少代碼間的依賴性可以提供一個(gè)“干凈”的接口。下面這篇文章主要給大家介紹了關(guān)于C++中pimpl用法的相關(guān)資料,需要的朋友可以參考下。
    2017-08-08
  • C++通過(guò)CryptoPP計(jì)算Hash值的過(guò)程詳解

    C++通過(guò)CryptoPP計(jì)算Hash值的過(guò)程詳解

    Crypto++ (CryptoPP) 是一個(gè)用于密碼學(xué)和加密的C++庫(kù),它是一個(gè)開源項(xiàng)目,提供了大量的密碼學(xué)算法和功能,本文小編給大家介紹了C++通過(guò)CryptoPP計(jì)算Hash值的過(guò)程,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11

最新評(píng)論