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

剖析C語言關鍵字之void,const,return

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

return

首先我們弄清楚c語言內存分配的方式

在這里插入圖片描述

然后我們看一段代碼:

#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;
}

在這里插入圖片描述

當運行到printf函數的時候,s指向的內容仍是”hello world“,但為什么最后打印出來就是亂碼了?

在這里插入圖片描述

在這里插入圖片描述

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

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

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

那是因為printf也是一個函數,也要創(chuàng)造空間,所以將string所創(chuàng)造的棧幀給覆蓋了

在這里插入圖片描述

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

void

一.可做為函數的通用接口

例:

在這里插入圖片描述

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

原因:

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

二.void不能修飾變量

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

三.void修飾函數返回值

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

假如不加,默認是int類型的返回值

const

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

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

在這里插入圖片描述

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • C++11中移動構造函數案例代碼

    C++11中移動構造函數案例代碼

    C++11 標準中為了滿足用戶使用左值初始化同類對象時也通過移動構造函數完成的需求,新引入了 std::move() 函數,它可以將左值強制轉換成對應的右值,由此便可以使用移動構造函數,對C++11移動構造函數相關知識感興趣的朋友一起看看吧
    2023-01-01
  • C++中const應放在類型前還是后

    C++中const應放在類型前還是后

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

    C語言實現個人通訊錄管理系統(tǒng)

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

    求斐波那契(Fibonacci)數列通項的七種實現方法

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

    C++有限狀態(tài)機實現詳解

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

    C語言詳解如何實現順序棧

    順序棧,就是用一組地址連續(xù)的存儲單元來存放棧元素,然后用一個棧結構去維護一個棧。在C中,可用動態(tài)開辟的數組去表示,維護的棧結構需要有一個棧底和一個棧頂指針
    2022-04-04
  • C語言實現動態(tài)開辟存儲楊輝三角

    C語言實現動態(tài)開辟存儲楊輝三角

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

    一文詳解Qt中線程的實際應用

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

    C++學習筆記之pimpl用法詳解

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

    C++通過CryptoPP計算Hash值的過程詳解

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

最新評論