指標作為函數形參的思考

最近在論壇上看到有一篇文章提問下面的問題: char * fun(char *p){       return p;}提問:此函數返回的是誰的值,是參數p的地址,還是p的值? 回答:p的值,但其值指向一個記憶體位址p是棧中的地址,和局部變數的地址一樣,函數返回後這塊記憶體就無效了。這種用法還是很常見的,比如鏈表中。雖然p是棧中的地址,但是因為它只是指標副本,所以可以改變指標的指向(通過return的傳回值),指向其他地方。

撲克牌鬥牛遊戲

2013-02-14 wcdj  大年初五,情人節過年和家人玩撲克牌鬥牛遊戲(地道的發音是 Dou Ou),規則很簡單,每個人發五張牌,如果三張牌之和是10,20或30則稱為一個牛(Ou),其餘兩張牌相加之和模10,若沒有牛則選最大的一張牌進行大小點比較,若大小點一樣則再比較黑紅梅方,玩家人數不限,一個人做莊,然後拿點零花錢,後面就看各自的運氣了。抽空將此遊戲簡單用代碼實現了下,一些地方還可以最佳化。// 2013-02-14 wcdj#include

UNICODE編碼細節與個人使用總結

1、TCHAR ,UNICODE,CHAR,wchar_t 之間的關係經常發現有的人愛用strcpy等標準ANSI函數,有的人愛用_tXXXX函數,這個問題曾經搞的很混亂。為了統一,有必要搞清楚它們之間的關係。 為了搞清這些函數,就必須理請幾種字元類型的寫法。char就不用說了,先說一些wchar_t。wchar_t是Unicode字元的資料類型,它實際定義在<string.h>裡: typedef unsigned short

(APUE點滴記錄) I/O多路轉接

2013-04-20 wcdj一大早得知四川雅安發生7.0級地震,望災區的人民儘快得到救助,祈福平安。問題:當從一個描述符讀,然後又寫到另一個描述符時,可以在下列形式的迴圈中使用阻塞I/O:while ( (n = read(STDIN_FILENO, buf,BUFSIZ)) > 0 ){ if( write(STDOUT_FILENO, buf, n) != n ) {

硬碟安裝ubuntu-9.04-alternate-i386.iso的體驗

      剛開始使用Ubuntu的時候,是用wubi安裝的,雖然方便快捷,但是讓人總覺得不算是正宗的GUN/Linux系統,因為畢竟這樣安裝後,它的檔案系統本質依然是Windows的檔案系統,只是虛擬出來的Linux檔案系統,所以我們可想而知,在系統跑起來之後它的效率肯定沒有在正真的Linux系統上跑的快。所以還是決定分出一塊硬碟用來專門安裝Ubuntu。     

How to get rid of `deprecated conversion from string constant to ‘char*’` warnings in GC

2013-02-26 wcdjProblem:So I'm working on an exceedingly large codebase, and recently upgraded to gcc 4.3, which now triggers this warning:warning: deprecated conversion from string constant to ‘char*’Obviously, the correct way to fix this is to find

動態分配空間的極限測試

2013-05-04 wcdj 向青年節致敬! 問題:堆空間最大可以申請多少呢?測試: // new_handler example#include <iostream> // std::cout#include <cstdlib> // std::exit#include <new> // std::set_new_handlervoid no_memory () { std::cout <<

用於指令碼的IDispatch實現

做這個Dispatch實現基類的目標有3個:1。能夠很方便滴映射成員供指令碼(包括使用WebBrowser的external對象) 訪問;2。最好能不依賴MFC;3。不用tlb檔案,不寫註冊表。實現的時候,參考了Delphi的ComAutoObj(話說回來,這個單元的BUG可不小,上次做的時候用著用著就出錯。。。還好有個好心的澳大利亞青年發了個補丁……扯到哪裡去了-___-b) 最後完成下來,衍生類別中的映射是這樣滴,看起來還不錯:P,也沒有像MFC的CDispatchHelper裡面的VTS_

Boost.Interprocess使用手冊翻譯之二:快速指南 (Quick Guide for the Impatient)

二.快速指南(為急於想瞭解Boost.Interprocess的朋友)使用共用記憶體做為一個匿名記憶體塊池建立命名共用記憶體對象為共用記憶體使用量一個位移智能指標在共用記憶體中建立容器(vector)在共用記憶體中建立映射表(map) 使用共用記憶體做為一個匿名記憶體塊池你可以僅分配共用記憶體段的一部分,拷貝訊息至那塊緩衝區中,然後發送那部分共用記憶體的位移量至另外一個進程即可。樣本如下:#include <boost/interprocess/managed_shared_memory.

(APUE點滴記錄) 進程式控制制之fork與vfork

2013-03-02 wcdj1 fork —— “生個新娃”#include <unistd.h>#include <stdio.h>#include <stdlib.h>int glob = 6;// external variable in initialized datachar buf[] = "a write to stdout\n";intmain(int argc, char** argv){int var;// automatic

迭代器與traits編程技法

2013-06-15 wcdj迭代器設計思維(1) 迭代器(iterators)是一種抽象的設計概念,現實程式語言中並沒有直接對應於這個概念的實物。(2)《設計模式》一書提供有23個design patterns的完整描述,其中iterator模式定義為:提供一種方法,使之能夠依序巡防某個彙總物(容器)所含的各個元素,而又無需暴露該彙總物的內部表述方式。(3)

Mac air 網路攝影機不可用恢複方法Command-Option-P-R

2013-03-24 wcdj在一次QQ視訊交談時發現網路攝影機不可用,包括FaceTime,重啟電腦也無濟於事,最後google了下找到瞭解決方法。按照蘋果官方給出的重設 PRAM 和 NVRAM 的方法,再次重啟電腦後,開啟FaceTime攝像功能恢複正常(原因待後續探究)。網上說通過此方法還可以提高開機速度。具體步驟如下:關閉電腦。在鍵盤上找到以下按鍵:Command、Option、P 和 R。您將需要在步驟 4 中同步選取這些鍵。啟動電腦。按住 Command-Option-P-R 鍵。

(UNP點滴記錄) I/O複用select

2013-02-03 wcdj1 UNIX下可用的五種I/O模型(1) 阻塞式I/O(2) 非阻塞式/O(3) I/O複用(select和poll)(4) 訊號驅動式I/O(SIGIO)(5) 非同步I/O(POSIX的aio_系列函數)2 I/O複用selectclient代碼// client_v2.cpp #include <stdio.h> #include <stdlib.h> #include <string.h> #include

(Manual) Interactive Data Visualization for the Web

2013-06-29 wcdjInteractive Data Visualization for the Webhttp://chimera.labs.oreilly.com/books/1230000000345/index.html  (線上閱讀)http://alignedleft.com/tutorials/d3/http://download.csdn.net/detail/kyokk8/5612365  (pdf下載)This is a book about

蘇泊爾耗的JPEG解碼器[二]

哈夫曼解碼和位流操作部分。JPEG的哈夫曼編碼是最佳化過的,對於每一個N位長的編碼只要它小於MAX[N]就是一個結束編碼。MAX[N]可根據DHT文法中給出的碼錶算出。取位的方法很普通。如果用彙編最佳化的話,可以考慮用以前跟蹤到的某H-GAME中圖片解碼程式的實現方法。在這裡就不多講了。要注意的是RSTn可能會穿插在這裡面。jpeghuff.h********************************************** 低調滴分隔線(1) ********************

GDB多進程調試

2013-07-06 wcdj在平時工作中經常會用到多進程/多線程,如果程式出現bug如何定位呢?GDB是GNU/Linux環境下常用的C/C++調試工具,下面是關於GDB多進程調試的簡單使用說明。關於守護進程http://blog.csdn.net/delphiwcdj/article/details/7364343 pstree –H PIDhighlight this process and its ancestorsWhat is GDB?GDB, the GNU Project

Ext2的一般特徵

前面對虛擬檔案系統VFS的討論就告一段落了,VFS主要是提供一個系統調用介面,然後將相關檔案系統對象與具體的檔案系統串聯起來。從本篇博文開始,我們將選擇一個具體的檔案系統進行研究,這個檔案系統就是第二擴充檔案系統(Ext2)。為啥要特別學習這個東西呢?因為ext2是Linux所固有的,事實上已在每個Linux系統中得以使用,因此我們自然要對Ext2進行討論。此外,Ext2在對現代檔案系統的高效能支援方面也顯示出很多良好的實踐性。固然,Linux支援的其他檔案系統有很多有趣的特點,但比較擴充檔案系

Boost.Interprocess使用指南(1)

2013-07-06 wcdjBoost.Interprocess(下面簡稱BI)http://www.boost.org/doc/libs/1_54_0/doc/html/interprocess.html#interprocess.intro.introduction_building_interprocess(Manual) Introduction

(APUE點滴記錄) 進階I/O之非阻塞I/O

2013-03-30 wcdj低速系統調用是可能會使進程永遠阻塞的一類系統調用,而非阻塞I/O使調用open, read和write這樣的I/O操作,並使這些操作不會永遠阻塞,如果這種操作不能完成,則調用立即出錯返回,表示該操作若繼續執行將阻塞。對於一個給定的描述符有2種方法對其指定為非阻塞I/O:(1) 如果調用open獲得描述符,則可指定O_NONBLOCK標誌;(2)

Boost之高階函數——函數對象

20130728 wcdj函數對象,可能稱為'高階函數'更為適合。 它實際上是指那些可以被傳入到其它函數或是從其它函數返回的一類函數。 在C++中高階函數是被實現為函數對象的,所以這個標題還是有意義的,本文總結幾個用於處理函數對象的 Boost C++ 庫。1 Boost.BindBoost.Bind 是這樣的一個庫,它簡化了由C++標準中的 std::bind1st() 和std::bind2nd() 模板函數所提供的一個機制:將這些函數與幾乎不限數量的參數一起使用,就可以得到指定簽名的函數。

總頁數: 61357 1 .... 20124 20125 20126 20127 20128 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.