最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

函數(shù)外初始化與函數(shù)內(nèi)初始化詳細(xì)解析

 更新時(shí)間:2013年09月30日 09:11:37   作者:  
函數(shù)內(nèi)初始化:bool FillStr(char *&szDst, int nSize);第一個(gè)參數(shù)中的&一定不能少,這是因?yàn)樵诤瘮?shù)外部我們只聲明了這個(gè)指針,具體這個(gè)指針指向內(nèi)存中的哪個(gè)地址我們并不知道,所以&是為了說明傳遞的是這個(gè)指針的引用,那么在函數(shù)內(nèi)初始化后這個(gè)指針的地址也就是外面指針的地址了

關(guān)于函數(shù)外初始化與函數(shù)內(nèi)初始化之前一直分的不是太清,也不太在意。昨天終于出現(xiàn)了這方面的問題,所以決定好好看下,以下是這次的一些收獲,先看測試代碼:

復(fù)制代碼 代碼如下:

#include "stdafx.h"
#include <iostream>
using namespace std;
bool FillStr(char *&szDst, int nSize)
{
 bool bRet = false;
 if (nSize > 0)
 {
  szDst = (char*)malloc(sizeof(char) * nSize);
  memset(szDst, 0, sizeof(char) * nSize);
  strcpy(szDst, "hello, world");
  bRet = true;
 }
 return bRet;
}
bool FillStr(char *szDst)
{
 bool bRet = false;
 if (szDst)
 {
  strcpy(szDst, "hello, 5.1");

  bRet = true;
 }
 return bRet;
}
int _tmain(int argc, _TCHAR* argv[])
{
 char* szWord = NULL;
 // 第一種
 //FillStr(szWord, 64);
 // 第二種
 szWord = (char*)malloc(sizeof(char) * 64);
 memset(szWord, 0, sizeof(char) * 64);
 FillStr(szWord);
 printf("%s/n", szWord);
 if (szWord)
 {
  free(szWord);
  szWord = NULL;
 }
 getchar();
 return 0;
}

1.函數(shù)內(nèi)初始化:bool FillStr(char *&szDst, int nSize);

第一個(gè)參數(shù)中的&一定不能少,這是因?yàn)樵诤瘮?shù)外部我們只聲明了這個(gè)指針,具體這個(gè)指針指向內(nèi)存中的哪個(gè)地址我們并不知道,所以&是為了說明傳遞的是這個(gè)指針的引用,那么在函數(shù)內(nèi)初始化后這個(gè)指針的地址也就是外面指針的地址了。

第二個(gè)參數(shù)是我們要分配的字符個(gè)數(shù)。

2.函數(shù)外初始化:bool FillStr(char *szDst);

這個(gè)函數(shù)的參數(shù)加不加&都可以,因?yàn)閭鬟M(jìn)來的時(shí)候已經(jīng)初始化了,已經(jīng)有了一個(gè)確切的地址,如果不加&的話傳進(jìn)來的就是原來地址的拷貝,如果加&的話就是同一個(gè)指針。所以不管怎樣它們傳進(jìn)來的都是一樣的地址,對(duì)其操作都是對(duì)同一塊內(nèi)存的操作。

雖然上面兩種方法都可以達(dá)到相同的效果,但是我認(rèn)為還是第二種方式好些,這樣符合誰分配誰釋放的原則。

相關(guān)文章

  • 深入解析unsigned int 和 int

    深入解析unsigned int 和 int

    以下是對(duì)unsigned int和int進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • 基于QT實(shí)現(xiàn)顯示OpenCV讀取的圖片

    基于QT實(shí)現(xiàn)顯示OpenCV讀取的圖片

    OpenCV自帶了一部分常用的GUI功能,但是更多的圖像處理功能需要其他GUI框架來輔助實(shí)現(xiàn),本文將通過QT來顯示OpenCV讀取的圖片,需要的可以參考一下
    2022-11-11
  • C語言實(shí)現(xiàn)猜數(shù)字大小的游戲

    C語言實(shí)現(xiàn)猜數(shù)字大小的游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)猜數(shù)字大小的游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C語言編程實(shí)例之輸出指定圖形問題

    C語言編程實(shí)例之輸出指定圖形問題

    這篇文章主要介紹了C語言編程實(shí)例之輸出指定圖形問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • C++實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    C++實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 解析c語言中"函數(shù)調(diào)用中缺少哨兵"的情況分析

    解析c語言中"函數(shù)調(diào)用中缺少哨兵"的情況分析

    本篇文章是對(duì)c語言中"函數(shù)調(diào)用中缺少哨兵"的情況進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++詳細(xì)分析講解函數(shù)參數(shù)的擴(kuò)展

    C++詳細(xì)分析講解函數(shù)參數(shù)的擴(kuò)展

    在C++中,定義函數(shù)時(shí)可以給形參指定一個(gè)默認(rèn)的值,這樣調(diào)用函數(shù)時(shí)如果沒有給這個(gè)形參賦值(沒有對(duì)應(yīng)的實(shí)參),那么就使用這個(gè)默認(rèn)的值。也就是說,調(diào)用函數(shù)時(shí)可以省略有默認(rèn)值的參數(shù)
    2022-04-04
  • C++11右值引用和std::move語句實(shí)例解析(推薦)

    C++11右值引用和std::move語句實(shí)例解析(推薦)

    右值引用(及其支持的Move語意和完美轉(zhuǎn)發(fā))是C++0x將要加入的最重大語言特性之一。這篇文章主要介紹了C++11右值引用和std::move語句實(shí)例解析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • C++全排列中遞歸交換法實(shí)例詳解

    C++全排列中遞歸交換法實(shí)例詳解

    在本篇文章里小編給各位整理的是關(guān)于C++全排列中遞歸交換法實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • C語言中的冒泡排序問題

    C語言中的冒泡排序問題

    這篇文章主要介紹了C語言中的冒泡排序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論

孝义市| 武胜县| 临城县| 辽宁省| 黄冈市| 德保县| 崇左市| 从化市| 甘孜县| 馆陶县| 二手房| 吕梁市| 康保县| 平度市| 保德县| 宕昌县| 武山县| 金平| 白玉县| 衢州市| 台南县| 寿光市| 读书| 科尔| 屏边| 永济市| 金川县| 托里县| 辛集市| 汉阴县| 松阳县| 富阳市| 中超| 滁州市| 长沙市| 白水县| 三穗县| 华宁县| 长乐市| 剑川县| 榆社县|