You are on page 1of 26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
Username

What'sNew?

Ttcdinn

Ccbivitmi Lch

ForumActions

Lptrnhchongimi

Password

Login

Nhtivo?

ngk

Help

Tutorials&Ththut

QuickLinks

Tmkimcaocp

Dinn LPTRNHC++|LPTRNHC|LPTRNHC++0X
trtcbnnnngcao

Ththut,TutorialsvMngunC/C++/C++0x

C++0xTutorialTmhiubnchtcacon

RTDCalibrationGuide?
HowtoCalibrateanRTDorPT100FlukeApplicationNoteDownload

NuyllnutinbnghthmdinncngngCVit,vuilngtmhiulutlthamgia,ccchngdntrckhibntinhnhngkmttikhon.Bnphi
ngkthnhvintrc,hocngnhpbngtikhonfacebookcabnbnmicthgibivit,ticcnhkm.
T1ti10trntngs178ktqu

Trang1trntngs18 1 2 3 11 ...

Cuicng

ti:Tmhiubnchtcacontrtcbnnnngcao
Cccngcti

Display

09122010, 02:35PM

#1

langman

Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

Thnhvinmi

Tmhiubnchtcacontrtcbnnnngcao
HmnayanghcOraclenhngmqualc3hhavi1ngiemlsvit1bivithngdnvcontr,mccckdhiu,ccky
,thutontonbbicnhvcontrtrongCvC++.Vvymnhquytnhdnhtonbbuichiunaychobivitny.Hyvngsl1
bivittruynthn,cckdhiu,vyhtmccth(htmclangmancth)

ChapI:Bnh
Bnhvtl
Bnho
Hnh1chngtathynhngthcgilbnh,bnhvtl,snmnghchthoimihh,cinylthitbbn
Hnh2lmhnhbtchcbnhomckhinim
Hnh3lmnhchpliccvngcabnhoca1tintrnhquenthucUnikey

I.Bnholg?
Qunlbnhvtl(cppht,thuhi)l1vncckphctptronghthngmytnh,bomshiuqu,ngn,antoncho
vicqunl,hiuhnhxydnglnccvngnho
Tronghthngmytnh,bnho(tingAnh:virtualmemory)lmtkthutchophpmtchngtrnhngdngtngrngmnhangc
mtdibnhlintc(mtkhnggianach),trongkhithcraphnbnhnycthbphnmnhtrongbnhvtlvthmchcth
clutrctrongacng.Sovicchthngkhngdngkthutbnho,cchthngdngkthutnychophpviclptrnhcc
ngdnglncddnghnvsdngbnhvtlthc(vdRAM)hiuquhn.
Lurngkhinim"bnho"khngchcngha"sdngkhnggianamrngkchthcbnhvtl"nghalchmrngh
thngbnhbaogmcacng.Vicmrngbnhticcachlmthquthngthngcavicsdngcckthutbnho.
Trongkhi,vicmrngnycthcthchinbngccphngphpkhcnhcckthutoverlayhocchuyntonbccchngtrnh
cngdliucachngrakhibnhkhiccchngtrnhnykhngtrngthihotng.nhnghaca"bnho"cnntnglvicnh
nghalikhnggianachbngmtdilintcccachbnho"nhla"ccchngtrnhrngchngangdngcckhilncca
chlintc.
(theowiki)

II.acholg?
Trongcivngbnhokia,chotintrnhdsdng,hiuhnhdhiu,2thngnycngnhauquynhrng,chinhratheotng
byte,vnhst1nht

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

1/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

cinhno,cnhslithtaniachcacinhli
ok?!!!
gisticbinakhaibonhsau
inta
vanmtrongcith452321ticivngnhtrn,vyacachl452321
tintrnhhiulth,cnhiuhnhthhiuhn1t:",ciachnytngngvicinhnotrongthanhrammtaangqunl,he
hehehehehe"
thm1tnal:ngitakodnghthpphn(decimal,hmcs10)vitachu,nnthui,chuynquahthplcphn
(hexadecimal,hmcs16nha)
452321hcs10,chuynlithnh6E6E1hcs16
trongCtivitl0x6E6E1
ngnngASMtivitl6E6E1h<<thmchhvicuihiuhcsym
thivitl0006E6E1hi
tisaovy?tivnhnyn
trongwindows32bit(xp,vista,7)thachocdil32bit,tngngvishexac8chs,th,nntivitthm0vochodhiu
ym
koblongbivitmnhxintrnhbycciucnnhsauy:
+Mitintrnhc1vngnhoring
+Vngnhol1kogianachotriditthpncao(t0x0000>caohn)
+trongwindows32bitthkogianachocacht00000000htridin7fffffffh
+Bncnhiunchlo,kophivngnocngcbnhvtlthtunh,
+Khinimvbnhphnon:segmentoffsetbnhybquai,vnqucri

III.Vdvuivacho
lmvdvuinybncn2cil
+pokemon:http://forums.congdongcviet.com/atta...3&d=1282105506
+armoneyactivecodeldot68:http://forums.congdongcviet.com/atta...1&d=1282119896
Khichigame,tathyimhinlntrnmnhnh,vythchcchnnsclutrutrongbnhvscachVActh.Dn
lptrnhchngtagichnglbin,vcachcth,hjhj
thayiimtphaappcamnh,utinchngtaphitmcachVAcabinimnynh.
tmcachcabinnykoqukhvi1toolcbnnhartmoney(Chacdownloady,activecodeldot68):
Bc1
utinbtpikachulnchily20imvbtartmoneyln,
utinlchntintrnh,pikachuyccitnlD4S
riclickvoSearchln1hpthoi

Bc2
clickvo...chnkiudliu,mnhhacknhiulnrinnbitnlkiufloat4byte,nuchahackbaogi,ccbncthALLtmvi
miloidliu

Bc3
chngtasthuc1lotachangchagitr20,bygichngtavotronggamechichoimtrthnh40rivoartmoney,click
vontFilterggitrmil40riok

Bc4

Vyltabitachcabiniml004B6088
aiquantmnhackgameththamkhobivitny
http://forums.congdongcviet.com/showthread.php?t=35324
AttachedThumbnails

cchnhsalncuibilangman:21032011lc07:29PM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

2/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

BiTnQuang

09122010, 04:55PM

#2

langman

Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

Thnhvinmi

ChapII:Tngquan
I.Cinhnvn
A:Contrlg,chhiucikhkhgc,nghenikhlm.
B:Hoccbnhc2,3buixongni,itridtym,.
th1iviA:Contrdtym,chcnbntheodiytutny,lmtheohngdn
th2iviB:thiinhpa,cxongcibivitny,rihngktlunnha
tixpamlinhtinhththi
ithngvovni

1.contrchl1binnguynbnhthng
contrchl1binnguynbnhthngnhcnnghpsabn
nl1bin,binnguyngitrcanlnguyn
nchacicgilachomtanibntrnbn
vdnhl:0x6E6E1hoc0x4B6088hoc454321
bn
saunynha
dbnkhaibo
void*p
char*p
hayl
double*p
longlong*p
thpvnl1bin,nl1bin,binnguyn,

2.tronghiuhnh32bitthncdil32bit,

trongwindows32bit(xp,vista,7)thachocdil32bit,tngngvishexac8chs,
vsaolichc32bit?
vncn32bitlvachtrhtvngnho

II.Contrdnglmg?
Vng,tichatngbaoginghn1cuhinginmtuytvinhnyvtilun.Nithnonh,tilun..tictintayldng,
hpltidng,cnthittidngmchonnaytichahnghncutrlicucuhi
Contrdnglmgnh
+,ngin,ngnhcibnchtcanthnchtrlungtungtrongvngnhocatintrnhhinti
+cnginivitidnglmthambinchohm,tihoknigc,vcicuningthngviccbnmithui,chisuvovnth
lisailra(tisaoxemtipccchpsaunha)
Tikothnir1cchnginngaytylcontrlmgchobn,thmchcsaunycngth
Nhngtitinchcrngmnhsmanglichoccbnnhngstuytvimtibinntcchsdngcontr
qun,c1iunycckquantrng:contrchl1cngc,l1kiudliu,tacitccgiithut,chkophil1giithuthay
thutton,nncuninhl"dngcontrgiibiA","giibitpBbngcontr"lhontonsai.
Ningphil"giibitpCsdngcontr"
cchnhsalncuibilangman:12122010lc03:34AM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists
BiTnQuang

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

3/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

09122010, 04:55PM

#3

langman

Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

Thnhvinmi

ChapIII:Khaibo
Chch,dnnhpthtldidi,nhngbni,hychcchnvitirngbncmthyok2chapu(xinngcltquanvivth
)vltincckquantrngbncthvtquakhimccbnsauny

I.Cutrckhaibo
kieudulieu*tenConTro
kiudliuycthl
+kiudliucsn(builtindatatype):int,char,void,double,long,......
+kiudliucutrcdongidngnhngha(userdefineddatatype):struct,union
+kiudliullpdongidngnhngha(C++)
+kiudliudnxut+kiucontrhm(ccchpadvnh)
nhclilnna,kiudliunylkiudliucacivngnhmntrnnha

tenConTro:ltncacontrnha
rakhicukhaiborithtenConTrosltncacontr,
int*a
rakhicukhaibonytasni:alcontr

II.Vd
PHPCode:
int*a,*p;

tasc2contra,vp
xinchcchtivitnh
+a,plcontr
+*a,*pkhngphilcontr
+kt*nggna,nggnp,tisaovy?

III.Ch
Ch1:
PHPCode:
int*a,b;//thalcontr,blbinnguyn

Ch2:
PHPCode:
int*a,b;//thalcontr,blbinnguyn
//vcchvitnhnycckngghtvgyratonhiulnngght

Ch3:
PHPCode:
void*a;//ng,hontonccontrvoidnha

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

4/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
AttachedThumbnails

cchnhsalncuibilangman:09122010lc06:03PM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists
BiTnQuang

09122010, 04:55PM

#4

langman

Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

Thnhvinmi

ChapIV:Khito
I.Khitolg
C1sbnsllmvcitiukhaibovikhitonghecvgingnhau.....Nhngbni,khaibo(declared,register)vkhi
to(initialize)hontonkhcnhaunha
inta//khaibobina
intb=2//khaibobinbvkthpvikhitogitrchobinbbng2
Khitakhaibo1binthculnhutinthitlpgitrchobinthlkhito.TrongC03,C++03trlnkhitakhaibo1binlocal,
chakhitogitrmemsdngthsphtsinhliruntime.
Vdoncodesauvndchc,vnrunnhngkhichystungrali"RunTimeCheckFailure#3Thevariable'a'isbeingusedwithout
beinginitialized."
PHPCode:
#include<iostream>
voidmain()
{
inta;
if(a==2)printf("ok");//cliruntimesinhradngny
}

II.Khitogitrchobincontr
cutrckhito:

TnConTr=aCh
+trongtncontrltncabincontr
+achlvngachmtamuntrn

Vd
Ch1:Bnthnpcngl1bin(nguyn),pcngnmtrongbnh,cngcachringbn
Ch2:Tont&ychnhxcphigilunaryoperator&,tont&1ngi,nhontonkhc
vitont&2ngi(bitwise).Tont&1nginydnglyachca1bin.Trckhingn
lthuytvcontr,chngtatngsdngtontnyri:scanf("%d",&a).
PHPCode:

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

5/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
a=3&2//tont&2ngi,ltontdngbitwise
p=&a;//tont&1ngi,ltontlyachca1bin
scanf("%d",&a)//tont&1ngi,ltontlyachca1bin

Ch3:Cthvitvdtrnngngnlithnh
PHPCode:
inta=1987,p=&a;

III.Cciugsaukhikhitonhvdtrn
+Khigitrnmtrongplachcaathtaniptrvoa
+Lcnyth*phontontngngvia,ngitacoi*plbdanhcaa,thaotcvi*pcng
nhthaotcvia,thaotcviacngnhthaotcvi*p
vd:
a.culnha=2hontontngngviculnh*p=2
b.culnha++hontontngngvi(*p)++
//chkhcvi*p++nh,phicho*pvotrongngmngocvtont*cutinthphn++
c.culnhb=a+c9hontontngngviculnhb=(*p)+c9
d.culnh(*p)=(*p)1227hontontngngvia=a1227

+Lcnyculnhscanf("%d",&a)tacththaybngscanf("%d",p)

Ch:Tont*

Tont*yltont1ngi,tcdngltruyxutnnhmcontrangtrn
trnhnhnghiulmkongc,khicsnhpnhngmbnkothonc,bnhythmcp()nha
(*p)++
a+(*p)*c//thmvochonsngsacodera

IV.Mtstrnghp
1.Hiulmvcchchoptrvoa

2.Cngtrvo1bin

3.Contracp

4.Contrtrnnhbit

5.Contrvoid

Contrvoidl1contrcbit,thchtriuthtr
PHPCode:
intham()
{
return1;
}
voidmain()
{
inta;
void*p,*q;
p=ham;
q=&a;
}

Contrvoikhcvicontrhuchno?
http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

6/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

vuilngnxemccchaptip
AttachedThumbnails

cchnhsalncuibilangman:18022013lc02:55PM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists
BiTnQuang

09122010, 04:55PM
langman
Thnhvinmi

#5
Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

ChapV:Kiudliucontrvcc
phptontrncontr
I.Kiudliucontr
Khitavitint*p,bchngtalunvit*gna,vsao?v*nylcap,plcontr,bkophicontr
kiudliucablint
kiudliucaplg????????????????(1)
bnxemlihnhnhcamc4.Contrtrnnhbitthy
p=(int*)....(2)
t(1)v(2)chngtacthnhnthyiuny,kiudliucapl(int*)
Thtrachngtatnggpkiudliucontrdngnyri.VdkhitraMSDNticcciny:
PHPCode:
char*gets(char*str);

TirttinvocchvitchunmccaMicrosoft,vthticngkhuynccbncodetheochunmcny:

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

7/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

+trongculnhkhaibocontrtivit*gntncontr
+khivitkiudliutivit*nggnkiudliucbn:cthkiudliutrvcahm,tiuvnguynmuhm
+culnhpkiuthmanualtheobnmun,cthvitcchrachothongcode
ccbncthxemlinguynmuhmgetsbntrnhiuthmvcchvitcodeny

II.Ccphptontrncontr
a.Phpgn
Phpgnivicontrththamkhophnkhitonhngc1viyutxuy:
+Ttcccloicontrucphpgn
+Phpgnvicontryucuvtril1contrvvphil1ach
+Phpgnyucustngxngvkiudliu,nukotngxngchngtaphipkiu
vdp=(int*)8232
pckiudliulint*
cn8232l1hngsnguyn,nnphipkiuvint*rithchinphpgn
+Phpgnvi1contrkiuvoidkocnthitphitngxnghontonvkiudliu,void*cthtngngvittc(nhvdchp
trc),thmchlvtcp(vthn2cp)nhvdsau
PHPCode:
void*p,**q;
p=&q;

b.Phpsosnh
Phpsosnhngangbngdngkimtra2contrctrvocng1vngnhhaykhng,hockimtra1contrcphilangtrvoNULL
haykhng(trongtrnghpcpphtng,mfile,mresource,........)
Phpsosnhlnhnnhhn:>,<,>=,<=sdngkimtravthpcaogia2ach.Contrnonhhnthtrvoachthp
hn.
+cquynsosnhmicontrvi0,v0chnhlNULL
PHPCode:
voidmain()
{
inta=197,*p=&a;
double*x;
p==&a;
main==0;//hcccchpsauhiusuhndnglnhny,hehehehehe
p==0;
x==0;
}

+Ngoirathkhisosnh2contrhoccontrvi1achxcnh(snguyn)cncstngxngvkiudliu
PHPCode:
intmain()
{
inta=197,*p=&a;
doubleb=0,*x=&b;
//sosnh2contr
(int)p==(int)x;
p==(int*)x;
(double*)p==x;
(void*)p==(void*)x;
p==(void*)x;
(float*)p==(float*)x;
//sosnhcontrvisnguyn
p==(int*)9999;
int(p)==9999;
//phnnngcaovthmthyvcontr
(int)p==int(main);
p==(int*)main;
(int(*)())p==main;
p==(void*)main;
//bnhtnhttintheohttutnybnshiuccigangxyra4dngcodeny

+Contrvoidcthemrasosnhvittccccontrkhc
xpamt,thciny
PHPCode:
voidmain()
{
inta=197,*p=&a;
(int(*)())p==main;
}

c.Phpcngtrvphptnggim:++==++
Bnchtcavictng/gimcontrpi1nvlchoptrnnhbncnhphadi/trn.
Ch:
+Khitnggimcontrpo1nvkhngcnghaltrsangbytebncnh
+Victnggimcontri1nvphthucvokiudliuvntrn,quytcl
p+1>>>gitrchatrongp+sizeof(kiudliucabinmptrn)
+Khngcphptnggimtrncontrvoid
+Khngcphptnggimtrncontrhm
+Khngcphpcng2contrvinhau
+Phptr2contrtrvlchphagia2contr

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

8/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

Vytacktlunnhsau:kiudliutrnctcdngxcthcsrrngttcccphptontrncontr(baogmcphp=*&)

III.ngdng
Mnhdemotrcmtngdngcavicthaotcccphptontrncontr
ngdngduytxu
PHPCode:
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
voidmain()
{
charxau[200];
printf("Nhapxau:");
scanf("%[azAZ]",xau);//nubnchahiudnglnhnyhyxembivitnyhiusuthmvscanf
//http://forums.congdongcviet.com/showthread.php?t=34612
//Vithoaxu(duytxui)
printf("Viethoa:");
for(char*p=xau;*p;p++)//ptrnxu;kttrnkhcNULL;p=p+1
printf("%c",toupper(*p));
//vitysl(char*p=xau;*p!=NULL;p++)
//vitngngnlichoco
//Vitongcxu(duytngc)
printf("\nDaonguocxau:");
for(char*p=xau+strlen(xau)1;p>=xau;p)//choptrvotcuicng;pcnlnhnxau;p=p1
printf("%c",*p);

getch();

ngdngisthcthnhsnhphn
Cch1:Cstyle
PHPCode:
#include<stdio.h>
#include<conio.h>
voidnhiphan(floatn)
{
for(inti=0,*temp=(int*)(void*)&n;i<sizeof(n)*8;i++,(*temp)<<=1)
printf("%d",*temp>=0);
}
voidmain()
{
nhiphan(3.9f);
getch();
}

Cch2:C++style
PHPCode:
#include<iostream>
usingnamespacestd;
voidnhiphan(unsignedn)
{
n>>1?nhiphan(n>>1):0;
printf("%d",n&1);
}
voidnhiphan(floatn)
{
nhiphan(*(unsigned*)(void*)&n);
}
voidmain()
{
nhiphan(3.9f);
getch();
}

ngdngtm(sfloatlnhnko)nhnht
ychnhls00000000000000000000000000000001
PHPCode:
#include<iostream>
intmain()
{
floatx=0;
char*p=(char*)&x;
(*p)|=1;
std::cout<<x<<std::endl;
return0;
}

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

9/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
AttachedThumbnails

cchnhsalncuibilangman:23032011lc04:19AM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists
BiTnQuang

09122010, 04:55PM
langman
Thnhvinmi

#6
Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

Tmhiubnchtcacontrtcbnnnngcao

ChapVI:Contrvimng,xu,cp
phtbnhng
I.Hngcontrconstpointer????Contrhng,pointer
toconst???
a.Hnglg?
Tabithngs(tonhc)lnhngilngcgitrkhngi,
tronglptrnhlnhngilngcgitrkhngitrongsuttrngtrnh.
HngtrongC/C++/C++0xcnhkiurrng
HngtrongC/C++/C++0xcnhnghabngtkhaconst
Ch:C1sngihiulmrngdngtkhadefinenhnghahngs,ythtsl1cihiusailmhonton.Definenhnghann
macrovcrtnhiuskhcnhaukhitadngdefinevconst
vitvhngvccvnlinquannhngtrongC/C++/C++0xchccngmt1bikhdi,nnkhngblongvnmnhang
vit,mnhxintmdngvnvhngy.........mnhsvit1topickhcvy
b.Hngcontr?
Mnhtmhiuvkiudliucontr:
+nlutrcig,mingitrcan
+ccphptontrncontr
bygimnhstmhiuthmvkiudliucontr:hngcontr.Vyhngcontrlg?ivihngvcontrc2loinhsau
+nhngcontrmchtrcnhvo1vngnh,nhngcontrnykockhnngtrvovngnhkhc,kothayic(1)
+nhngcontrmtrvo1vngnhcnh,contrnychctcdngtrn,chkhngckhnngthayigitrcavngnhny,
contrnycngdnggnnhltcdngcaphngthchngtrongOOP(2)
tinphnbit,mnhgi(1)lhngcontrv(2)lcontrhng,vchngtacthgpc2kiunythnh1kiumi
vdvloi(1)byclamvn
C++Code:
1.
2.
3.
4.
5.
6.
7.
8.

SelectAll|Show/Hide

voidmain()
{
charbuf[]="bonjour";
char*constp=buf;

p++;<<<<<<<<<<<<<<<<<<<<<<<bolitiy
p[4]++;<<<<<<<<<<<<<<<<<<<<<<<<<kovn,hontoncththayigitrvngnhmptrn
}

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

10/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

vdvloi(2)bylangman,thamkhovnhngsailmthnggp
C++Code:

SelectAll|Show/Hide

1. voidmain()
2. {
3. char*p="BuiTanQuang";
4.
5. p++;
6.
7.
8. (*p)++;<<<<<<<<<<<<<<<<<<<<<<<bolitiy(khngbolikhibindchnhngclitrongruntime)
9. p[2]='b';<<<<<<<<<<<<<<<<<<<<<<<bolitiy(khngbolikhibindchnhngclitrongruntime)
10.
11. }

vdtipvloi(2)byclamvn
C++Code:
1.
2.
3.
4.
5.

vdvkthpbyclamvn
C++Code:
1.
2.
3.
4.
5.

SelectAll|Show/Hide

charbuf[]="bonjour";
charconst*constp=buf;

p++;/*Sai*/
p[4]++;/*Sai*/

Vdtipvihm
CCode:
1.
2.
3.
4.
5.
6.
7.
8.

SelectAll|Show/Hide

charbuf[]="bonjour";
charconst*p=buf;/*hayconstchar*p=buf;*/

p++;/*c*/
p[4]++;/*koc,sai*/

SelectAll|Show/Hide

voidConvertUnicodeTextToSomeThing(constunsignedshortint*wstr)
{
unsignedshortintconst*p=wstr;//okies

unsignedshortint*q=wstr;//boli

ngdnglnnhtcacharconst*lchkhikhaibovsdngcchmtrvconst,nukobitiunycthbnskobtcchxi
codecangikhckhiangtrong1projectlnvmingidngcchmcanhau.Chnh,mynewbiehaygpvnvicinylm
nh
CCode:
SelectAll|Show/Hide
1. constchar*HamGiDoCuaNguoiKhacViet(void)
2. {
3. return"abc";
4. }
5.
6.
7. voidHamCuaToi(void)
8. {
9. //givsdngnktquhmbntrnthno?
10.
11. charconst*pstr=HamGiDoCuaNguoiKhacViet();//thnyn
12. }

II.Mnglinquangncontrvchovobivitny
chi?
Khitakhaibomngthtngngvi:xincppht1vngnhckickthcnhbnkhaibovkhaibora1hngcontrtrvou
vngnh

inta[100]
+cthcoial1hngcontrtrvophntth0camngnh,amang
ytnhchtca1hngcontrnhngcthm1skhcbitnh(vd
khidngsizeof)
+ccphptonnhmlmatrtivngkhc(thayigitrcaa)lkoth
(++=)
+atngngvi&a[0]
+a+itngngvi&a[i]
+*atngngvia[0]
+*(a+i)tngngvia[i]
Ch:trnhbindchlunhiua[i]l*(a+i)
http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

11/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

Bitiunylmg?
Mnhdemo2iu
1.nhpmng
PHPCode:
#include<stdio.h>
#include<conio.h>
voidmain()
{
floata[100];
intn;
//nhpn
printf("Nhapn:");
scanf("%d",&n);
//nhpmng
for(inti=0;i<n;i++)
{
printf("Nhapvaophantuthu%d",i+1);
scanf("%f",a+i);
}
//xutmng
printf("mangvuanhap:\n");
for(inti=0;i<n;i++)
printf("%f",*(a+i));
getch();

2.bitonvui
PHPCode:
#include<stdio.h>
#include<conio.h>
voidmain()
{
inta[100]={0,1,2,3,4,5,6};
printf("%d",2[a]);//inra2,tisaovy?
getch();
}

chcchnlcnhnthy2[a]kotngisthyll,nghnlli,......
cngithnghlninra2,nhngtisaovy,thnhungi
thtra:2[a]trnhbindchshiul*(2+a)
*(2+a)hontontngngvi*(a+2)
m*(a+2)chnhla[2]
vy2[a]cngnginla[2]
>>>coolphihokno
Ngoi2iunyracnnhiucithvlm,bnhythkhmphxemsao

III.,thcncontrhnglcigth?
(ylphnnngcao)
contrhngl1optionalabilitytronglptrnh,tcdngcantanhl(gnnhthi,kothbngc)phngthchngtrongC++
nghal1contr,trn1nh,nhngkocquynthayigitrcanh!!!!!!!!
PHPCode:
inta=3;
constint*p;
p=&a;<<<<<<<<<<<<<bnthnpthcththayi,chopgnvochkhccnhng
(*p)++;<<<<<<<<<<<bolitiy!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

iviccbnmithchckohiuhocchiucngnghligiii,bitlmquig!!!hh.....
Vdinhnhnhtylhmstrlencachngta
PHPCode:
intstrlen(constchar*Str)

Khibncodetrong1projectCln1thoclnnhiut,hh,gisbnc1hm,thaotcvi1mng,hmnychcmngthi,kolm
thayiccgitrtrongmng.Vquantrngl,khisharecodechoccbnkhctrongcngproject,lmsaohbitiuny??????????
Vytascithmcamnhnhsau
demovdmu
PHPCode:

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

12/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
//ivitrnghphngcontrlthamshnhthcth
//voidham(constint*)vvoidham(intconst*)
//lnhnhau,tconstkhinggpvotrongthamshnhthclnhnhau
voidham(constint*a,intn)
{
//xlg
}
voidmain()
{
inta[100]={1,2},n=2;
ham(a,n);//khisdnghmnytihiul,,nkothayimngacatiu
//yntmxi,nucligthkophisinhraty
}

IV.Thcnxuktthsao?
+Xuktltrnghpcbitcamng1chiukhimcchthnhphncamngl1byte
+XuktktthcbngNULL.NULLl1ktcbitcml0,
C3cchvitNULLtrongCnhsau:NULL,'\0',0

A.Sailmthnggpkhilmvicvixukt
ivixuktthccbnphinhcnhngtrnghpsau
1.Chacbnhsdngnhngri>>>>sailra
PHPCode:
char*xau;
gets(xau);//vnbindchc
//nhngkhichyssinhraliruntime
//1strnhbindchcibpngyxathcthkobliu
//nhngsaithvnlsai,codenysaithucloichacppht

2.Thayigitrcamthng>>>>>sailratip
PHPCode:
char*xau="langmancongdongcviet";
xau[6]='A';//vnbindchc
//nhngkhichyssinhraliruntime
//linyllictnhthayigitrca1hng

Nguynnhnsuxacavnnhsau:
khikhaibochar*xau="langmancongdongcviet"thbnchtl
+trongvngnhdatacachngtrnhsc1hngchui"langmancongdongcviet".<<<<lhngchui,lhngthkothbthayi
+chocontrxautrnucavngnh.
Culnhtiptheoxau[6]='A'ctnhthayigitrcahng,rrnglsinhraliri
3.Ctnhthayigitrcahngcontr<<<<<<<<sailtipna
PHPCode:
charxau[100];
xau="bitnquang";//khngbindchc
//vphptontrncnghalkhaibo1chui"bitnquang"trongvngnhcode
//risauchohngcontrxutrvo
//rtticxaulhngcontrnnkothtriukhcc
//ngoivtrckhitotrongculnhkhaibo

chcharxau[100]="bitnquang"hoccharxau[100]={0}thhontonhpl
trch:
4.Dngphptonsosnhsosnhnidung2xu<<<<<<<<sailtipna
C++Code:

SelectAll|Show/Hide

1. voidmain()
2. {
3. charxau[100]="quangxeng";
4. if(xau=="quangxeng")...//codenykosaivngphp,kosinhraliruntime
5. //nhngmangliktqukonhngidngmongmun
6. //vtheomcb.trntac
7. //Phpsosnhngangbngdngkimtra2contrctrvocng1vngnhhaykhng,
8. //hockimtra1contrcphilangtrvoNULLhaykhng
9. //(trongtrnghpcpphtng,mfile,mresource,........)
10. //chkophilphpsosnhnidungcaxu
11. //sosngnidungcaxutaphidngnhnghmstrcmp(stringcompare)hocstricmp
12. //hocnhnghmbntnhngha
13.
14. }

Phlc

B.Bitthm1styleduytxumi
XemchapV,phn3
mrngngdngduytxulmbixusau:Nhpvodng"hmtn",vitramnhnh"TnmH"
PHPCode:

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

13/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
#include<stdio.h>
#include<conio.h>
voidmain()
{
charxau[100],*p=xau,*q,*i;
printf("Nhap:"),scanf("%[az]",xau);//nhapvao"hodemten"

while(*p!='')p++;
q=xau+strlen(xau)1;
while(*q!='')q;

//viethoa
*xau=toupper(*xau);
p[1]=toupper(1[p]);
q[1]=toupper(1[q]);
//viet
printf("Xuat:%s",q);//ten
for(i=p;i<=q;i++)printf("%c",*i);//dem
for(i=xau;i<p;i++)printf("%c",*i);//ho

getch();

V.Thcncitcpphtngthsaonh?Nghequen
qui...
1.Bnchtcaviccpphtng.
utinhiuccpphtng,bnhyngheliti,tmthibquattccclthuyt,ccculnh,cccodembnbit,tmthicha
quantmnnvi,hycchotibivitny:http://forums.congdongcviet.com/showthread.php?t=36221(rtcnthity)
(vlmnkohip,thcmcgtrnttccctopicmnhhngdn,cntcuhihyquaboxhiplp,mnhstntnhtrlibn
bngttcnhnggmnhbit)
2.cpphtngnhthno(cphplmnxemschgiokhoanh)
a.C
contro=(pkiu)malloc(...)
TrongCchngtacpphtngchyusdngcchmtrongalloc.h
ccbncththamkhocchmy
http://forums.congdongcviet.com/showpost.php?p=30657
chl:

+malloctrv1achn1vngnhvcoivngnhnylvoid*,nntrongculnhmalloc
lunikmvivicpkiu
+cpphtllunphiikmvigiiphng,ucngth,malloclphifree,ok?Codem
thotchngtrnhrichagiiphngchodlchthngctgiiphnginavnbcoil
bad!!!!
+Trongjavachcnchoreference=nulllngiiphngnhngtrongCthbtbucphicthaotc
giiphngfree()
b.C++
trongC++chngtadngnewvdeletecpphtng
newvdeletevcphpthamkhotrongsch

Cuhicaquyt1991:skhcnhaugiamallocvnew?
Trli:
newvmallockhcnhauccccknhiuccpn
sbnhsau,chaphntchk
malloclhm,cpphttrvkiuvoid*,mallocthkogihmto
freekogihmhy
malloctrvNULLnuthtbi
newltont,newgihmto,newcthcanngha(npchng),
newnmraexceptionnuthtbi
tontnewvtontnew[]kockhnngrealloc

VI.Mng2chiu,bnchtnhthno,khcgmngmt
chiu?
cngchcnninhiulmg,chcnbnxemcinylhiuri

khikhaibonhtrntacatrvoa[0][0]

Contracpvmng2chiu!!!Bnchtnthnota
i????C1vihiulmgiacontracp,contrmng,
nrasao?Vuilngxemchaptip

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

14/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

Update13/4/2013:Chngminhcthcoitnmnglhngcontr(Chng
minhnychdnhchoccadvpointer,ccnewbiengcvinh.khi
ccbnthnhthcriquayliccngokies):
Cch1chngminhthun

a.Chngminhal1contr(ttnhinc1sskhcbitsovicontrthun,nukonkodefinelnmnglm
g)
utin:accctnhchtcbncacontrviunaryoperator*,unaryoperator[]dngtruyxut
+atngngvi&a[0]
+a+itngngvi&a[i]
+*atngngvia[0]
+*(a+i)tngngvia[i]
Vivistatic

++>ayl1hng,
++>gitrcahngchnhlatrcautintrong100nhkia,
vyycphiiukinl1hngcontrko?
Tiptheoivilocal:
gngingnhstatic,nhngykoalikophil1hngsfixcngnhtrnvnhnmtrongstack,ttnhinri,code:
CCode:
SelectAll|Show/Hide
1. #include<stdio.h>
2. #include<conio.h>
3. voidmain(void)
4. {
5. inta[100]={3,1,2,3,4,5,6,7,8};
6. int*pr;
7.
8. //chngminhac1tadnditruyncaint*
9. pr=123;//li
10. pr=main;//li
11. pr='a';//li
12. pr=void;//li
13. pr=(int*)123;//okbuiltc
14. pr=(int*)main;//okbuiltc
15. pr=(int*)'a';//okbuiltc
16. pr=a;////okbuiltc
17.
18. //chngminhgitrcaatrnuvngnh
19. intx;
20. printf("%X\nHaynhapsohexavanvuathay:",a);
21. scanf("%X",&x);//talyluncisluvox
22. int*p=(int*)x;
23. (*p)++;//tathystrvovophntutincamng
24. printf("%d",a[0]);
25. getch();
26. }

b.Chngminhal1hng(cinychcchngcnchngminhnh,vnbasequm)
CCode:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<conio.h>
3. voidmain(void)
4. {
5. inta[100]={0,1,2,3,4,5,6,7,8};
6. a++;//nubtdngnylnlli,vyako++c,rrngactrnhbindchcoilhng
7. a;//nubtdngnylnlli,vyako++c,rrngactrnhbindchcoilhng
8. int*pxx=a;//emagnchoint*c,vyrrngbasecaal1int*(ginggingahnh)
9. getch();
10. }

Cch2chngminhbngphnbin
Gisakophilcontr,askoththamn1svnsau
CCode:
1.
2.
3.
4.
5.
6.
7.
8.

SelectAll|Show/Hide

#include<stdio.h>
#include<conio.h>
voidmain(void)
{
inta[100]={0,1,2,3,4,5,6,7,8};
printf("%d",2[a]);//!!!!!!!!!!!!!!!!!
getch();
}

CCode:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<conio.h>
3. voidham(int*arr)
4. {
5. }
6. voidmain(void)
7. {
8. inta[100]={0,1,2,3,4,5,6,7,8};
9. ham(a);//tisaoligiham(contrnguyn)iviac
10. getch();
11. }

CCode:
1.
2.
3.
4.
5.
6.
7.

SelectAll|Show/Hide

#include<stdio.h>
#include<conio.h>
voidham(int*arr)
{
}
voidmain(void)
{

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

15/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
8. inta[100]={0,1,2,3,4,5,6,7,8};
9. int*x;
10. x=a;//bin=hnggitrtngnghocbinckiugntngng
11. //kocbtkcnhbowarninggyvivs2012nh
12. _getch();
13. }

....Moretrchdntbnkimcy92
Nguynbncgibikimcy1992

chttonbcccuctraoivclihttiliuccoiltintng,haykimchngcodeemthyanharalkhngsaitrchxutthmmtt
tliutrongquynhowtoProgrammingC++8thconnivmiquanhgiacontrvmngnhsau

...mclischthytcngnitnmnglmthngach,chaphntutincamng.Thmcinhnavntrongquynhowtojavakia,nhng
cciluemthyrtngvitsaochodsainhnbittngminhnhtnhvicanhlangmanlunmunhngti

Chntrangcppctntui
http://www.cplusplus.com/doc/tutorial/pointers/
Becausenumbersisanarray,soitoperatesasaconstantpointer,andwecannotassignvaluestoconstants.

AttachedThumbnails

cchnhsalncuibilangman:19042013lc08:57PM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists
BiTnQuang

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

16/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

09122010, 04:55PM

#7

langman

Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

Thnhvinmi

ChapVII:Contrvihm,contr
hm
I.Hmcngcach

Khi1chngtrnh(1pefile)chy(tintrnh)thcchmnmbnchngtrnhccloadlnkhnggiannho,VAspace,chngnm
trongvngnhcode.
Ccbncththamkhohnhdiy,hnhnhkhidebug1ngdngviollydbgvdebug1ngdngbngIDEVS2010:

II.Contrhm

Contrhml1iuthvtrongC/C++.bnchtcacontrhmcngl1contrcnhkiu.
tacthsdngcontrhmgihm(invoke)khibitachcahm

a.giningdng
demo1vd
C++Code:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<conio.h>
3. intmin(inta,intb)
4. {
5. if(a>b)returna;
6. returnb;
7. }
8. voidmain()
9. {
10. int(*p)(int,int);
11. p=min;
12. printf("mincua4va5la%d",p(4,5));
13. getch();
14. }

Ch:khikhaibotaphidngtont()vinghal*nythucvp,l1contrhm.int(*p)(int,int)

b.gitngdngkhc(bnchtthvnlninhng1hnhthikhc,remote+ni)
Bncththyautogamevlmko?LmsaokhitanCtrl+Znsmhmra?
nguyntccannhsau:nsdngkthutcihookci1threadvotronggamevlm.
threadnykhingidngnntCtrl+Znsgihmmhmcsntronggamevlm.
gisachmdngvoidhamMoHomDo(inta)tiach0x873ABchnghnthaslmthny
void(*p)(int)
p=(void(*)(int))0x873AB
p(3)//gihmvithamsl3

III.Hngcontrhm

Khinimhngcontrhmcnggngngingnhkhinimhngcontrvimng1chiu,
khibnkhaibo1hm,thtncahmchnhl1hngcontrhm,contrnytrcnhvovngnhcahm.Vng,lldovsao
codebntrn,ticthcnhngdnglnhny
PHPCode:
(int)p==int(main);
p==(int*)main;
(int(*)())p==main;
p==(void*)main;

chngtathy,chngtakhaibora1hmmain.vyrrngtac1hngcontrmain,l1hngthtahontoncthsdngsosnh
ri

IV.ngdngcacontrhm

Contrhmcngdngtrongnhiutrnghpkhcnhaukhrngri.Sauymnhxintincvivdinhnh

+Trnghpnginttcchngtausdngkotlnri,nhngvnkohiukobtlmnhdng,
lcout<<endl
Nguynbncgibilangman,[url

http://forums.congdongcviet.com/showthread.php?t=24853][/url]

endl,hex,octcnhnghanhno?
http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

17/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

hmnaycngihiticuhirthaynhny
endlncnhnghanhny?
PHPCode:
ostream&endl(ostream&os)
{
os.push('\n');
returnos;
}

vythculnh
cout<<endl
kohiuthngendlctruynthamsvonhno

cuhikhhayvkho,bnivnlthngtont<<c1hmoverloadnhny
tidemolichodhiunha
PHPCode:
friendostream&operator<<(ostream&os,ostream&(*p)(ostream&))
{
returnp(os);
}

+Sdngtrongcchmmu,lpmu,ctnhtychncao
*bnbaoginghenivhmqsorttrongnamespacestdcha,tisaokhisdngntaliphitruynvo1tnhm,haynichnhxcl
1hngcontrhm?
mnhxinm1cingin(khkh)
C++Code:
SelectAll|Show/Hide
1. #include<iostream>
2. usingnamespacestd;
3.
4. #include<stdio.h>
5. #include<conio.h>
6. voidxapxep(void*a,intsizeOfElement,intn,int(*hamsosanh)(void*,void*))
7. {
8. inti,j;
9. void*temp=newchar[sizeOfElement];
10. for(i=0;i<n1;i++)
11. for(j=i+1;j<n;j++)
12. if(hamsosanh((char*)a+i*sizeOfElement,(char*)a+j*sizeOfElement)>0)
13. {
14. memcpy(temp,(char*)a+i*sizeOfElement,sizeOfElement);
15. memcpy((char*)a+i*sizeOfElement,(char*)a+j*sizeOfElement,sizeOfElement);
16. memcpy((char*)a+j*sizeOfElement,temp,sizeOfElement);
17. }
18. delete[]temp;
19. }
20.
21.
22.
23. inthamsosanhungdung1(void*a,void*b)
24. {
25. return(*(double*)a)>(*(double*)b);
26. }
27.
28. inthamsosanhungdung2(int*a,int*b)
29. {
30. return(*a)>(*b);
31. }
32. voidmain()
33. {
34. doublea[100]={1.,2.,3.,4.,6.,5.};
35. intn=6;
36.
37. xapxep(a,sizeof(double),n,hamsosanhungdung1);
38.
39. for(inti=0;i<n;i++)
40. cout<<a[i]<<"";
41.
42. cout<<endl;
43. intb[100]={1,2,6,3,5,4};
44. intm=6;
45. xapxep(b,sizeof(int),m,(int(*)(void*,void*))hamsosanhungdung2);
46.
47. for(inti=0;i<n;i++)
48. cout<<b[i]<<"";
49.
50. getch();
51. }

+Sdnggihmtrongccdllmkocthvinnhp
thamkhobivithttp://forums.congdongcviet.com/showthread.php?t=47180

+Sdnggihmtrong1ngdngkhckhibitachcahm
(xemmcII)

V.Contrvihm(quantrng)
1.OverviewlivhmtrongC

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

18/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

2.Sailmtrongsuyngh

CnhiuthtnhiunginirngtrongC,tacthsdngcontrtrongthamscahmnhl1thambin,quahmtacththayic
gitrcathams.
tixinkhngnhli,iunythtl1hiulm,sailmtrongsuyngh,1shiubitnngcn,1cuphtbiukiucccc!!!
Nguynnhn
+HmtrongCkohcthambin,hmtrongCuhotngtheonguyntcsau:
Khigihm,1bnsaocathamsctora(cpphtvngnhmi,copygitrsang.qutrnhnytheogiotrnhcaihcFPTgil
shadowcopy,l1yutcnquantm,1C/C++Developerngbaogiquniuny),vhmslmvicvibnsaony
(trongC++nsdnghmtosaochptinhnhqutrnhshadowcopyny)
+Vykhilmvicvicontrthhmlmthno
vng,hmvnclmtheonguyntc1v1bnsaocacontrctora,vhmlmvicvibnsaohm,vtrckhigihm

contrtrvouthnvnctrvoychngminh:
C++Code:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<conio.h>
3.
4. intham(int*a)
5. {
6. *a=2;
7. a++;
8. }
9. voidmain()
10. {
11. int*a;
12. printf("Truoc:%x",a);//trcvsaukhigihm
13. ham(a);//contratrvou
14. printf("Sau%x",a);//thnvntrvo
15. getch();
16. }

+Vytisaolicsthayivtisaolisdngcontrtronghm?Contrkothayithcigthayic?
vng,ccbnchnh,gitrnmtrongvngnhtrnthayi.Vngngthybn,dobincatanmtrongvngnh
ctrnnnncthayi
C++Code:
SelectAll|Show/Hide
1. #include<stdio.h>
2. #include<conio.h>
3.
4. intham(int*a)
5. {
6. *a=2;//lmvicviachnhnc
7. }
8. voidmain()
9. {
10. intn;
11. ham(&n);//truynachcanvoy
12. //dosauhmnyn=2
13. getch();
14. }

3.Sailmtronghnhng

Mttrongnhngsailmcbnnhnglihaygplvdsau.
sailmvtronghmchngtacpphtbnhrichobnsaoanglmvictrn.rakhihmrithxcatavnchactrvobnhno
c
C++Code:
SelectAll|Show/Hide
1. #include<stdio.h>
2. #include<conio.h>
3.
4. voidnhap(int*a,intn)
5. {
6. //a=newint[n];//sailm
7. a=(int*)malloc(n*sizeof(int));//sailm
8. for(inti=0;i<n;i++)
9. cin>>a[i];
10. }
11. voidmain()
12. {
13. int*x;
14. intn=6;
15. nhap(x,n);
16. //xuat
17. delete[]x;//snsinhraliruntime,tungl1exception,doxchatrvoumigiiphng
18. }

VI.Vytiphilmthnomthayigitrca1
contrqua1hm
Vng,hmnaycngibnhimnhnhvy,hh,linhrabinymnhchatrli,vynntixutray2cchcththayigi
trca1contrqua1hm

Cch1:dngthamchiutrongC++
C++Code:
1.
2.
3.
4.
5.
6.
7.

SelectAll|Show/Hide

voidham(int*&a)
{
a=newint[100];
}
voidham(int**&a)
{
a=newint*[100];

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

19/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
8. }

xinchl*ngtrc&
Cch2:uplevelca*dngcontrcpcaohncontrhinti
Cch2nymnhchdemothi,bncnphicchitipchapcontracp
C++Code:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<conio.h>
3.
4. voidham(int**a)
5. {
6. *a=(int*)malloc(100*sizeof(int));
7. //a[0]=(int*)malloc(100*sizeof(int));
8. //2cachnaynhunay
9. }
10.
11. voidmain()
12. {
13. int*a;
14. ham(&a);
15.
16. free(a);
17. }

VII.Nngcaovcontrhm,mngcontrhmvknng
phntchvn
miccbnc3bivitsau
Giithchnghacadnglnhkhaiboint(*):http://forums.congdongcviet.com/showthread.php?t=49779
Knngphntchvn:http://forums.congdongcviet.com/showthread.php?p=117404
Sosnh(*ptr)[10]v*ptr[10]trongC!:http://forums.congdongcviet.com/showthread.php?t=34085
Hip:
Nguynbncgibiddatduong

ai,cthgiithchdmecilnhnylnhnoko?
CCode:

SelectAll|Show/Hide

1. void(*p)(int);
2. p=(void(*)(int))0x873AB;//<<lnhny

CCode:
1.
2.
3.
4.
5.
6.
7.
8.
9.

SelectAll|Show/Hide

void(*p)(int);//khaibora1contrhm
//hmnycdng[COLOR="Red"]voidham(inta)[/COLOR]
//vythcontrtrtihmnyphicdng[COLOR="Red"]void(*)(int)[/COLOR]
//ytacthhiuccmylkiudliu
p=(void(*)(int))0x873AB;
//0x873ABlachca1hmnomtaquaqutrngdebugphthinrannmtiachtrn
//nl1snguynnntapkiunvngkiudliuvip
//culnhnycnghalchoptrvouhm,
//saukhitrri,nutap(2)chnhlgihmvithamsthcl2

AttachedThumbnails

cchnhsalncuibilangman:30032011lc12:29PM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists
BiTnQuang

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

20/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
09122010, 04:55PM

#8

langman

Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

Thnhvinmi

ChapVIII:Contracp
I.Contracplg?

Mnhcngkornhnghacan,nhngtacthtmhiulnhngcontrcdng2hocnhiu*
vd:
C++Code:

SelectAll|Show/Hide

1. int**a;//cp2
2. char***b;//cp3
3. int*******************a;//cp??

+Phptontrncontrcpn(n>1vcontrcp2thuntynhtrongvdvakhaibotrn)tngtnhvicontrcp1tngng
C++Code:
SelectAll|Show/Hide
1. #include<stdio.h>
2. #include<conio.h>
3.
4.
5. voidmain()
6. {
7. int**a=NULL;
8. printf("%x\n",a);//0x0
9. a++;
10. printf("%x",a);//0x4
11. getch();
12. }

II.Contracpdnglmg?

Contracpdnglmgvtisaotiliphiquantm?
Vng,
+contracpthngcdngtrongtrnghpcnthayigitrca1contrcpthphnkhirakhihm.
(thtrathngthrttkhimnhvbncnxoyvovnvny.Tivtheonhccframework,vnh1OScorelinuxmnhtnglm
vic,ngitathnghaydngcontrvoidvislinhhotrtcao)
+Contrcp2cncdngnhl"contr"trtimt"contr",cthdngxl1matrix2chiu
+Contrcp3cncdngnhlcontrtrtimt"contr",mcontrnyangtrtipti1contrkhc
cthdngnhmatrix3chiu
....

III.Vivdhaygp

trnghp1haygp:Xlcontrmngccchui
CCode:

SelectAll|Show/Hide

1.
2. #include<stdio.h>
3. #include<conio.h>
4. #include<malloc.h>
5. voidmain(void)
6. {
7. char**lines;
8. intnumberline=10;
9. intlinelen=200;
10.
11. //cppht
12. //malloc**
13. lines=(char**)calloc(1,sizeof(char*)*numberline);
14.
15. for(inti=0;i<numberline;i++)
16. {
17. //malloc*
18. lines[i]=(char*)calloc(1,linelen);
19.
20.
21. //gngitrdemothi
22. lines[i][0]='A'+i;
23. }
24.
25. //xemgitrgnmu
26. for(inti=0;i<numberline;i++)
27. {
28. printf("%s\n",lines[i]);
29. }
30.
31. //giiphng
32. //free*
33. for(inti=0;i<numberline;i++)free(lines[i]);
34. //free**
35. free(lines);

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

21/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
36.
37. getch();
38. }

trnghp2haygp:Xlcontrmngccchuicpphtbnghm
CCode:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<conio.h>
3. #include<malloc.h>
4. voidHamCapPhat(char***lines,intnumberline,intlinesize)
5. {
6. //malloc**
7. (*lines)=(char**)calloc(1,sizeof(char*)*numberline);
8.
9. for(inti=0;i<numberline;i++)
10. {
11. //malloc*
12. (*lines)[i]=(char*)calloc(1,linesize);
13.
14.
15. //gngitrdemothi
16. (*lines)[i][0]='A'+i;
17. }
18. }
19. voidHamGiaiPhong(char**lines,intnumberline)
20. {
21. //free*
22. for(inti=0;i<numberline;i++)free(lines[i]);
23. //free**
24. free(lines);
25. }
26. voidmain(void)
27. {
28. char**lines;
29. intnumberline=10;
30. intlinelen=200;
31. //cpphtbnghm
32. HamCapPhat(&lines,numberline,linelen);
33.
34. //xemgitrgnbnghm
35. for(inti=0;i<numberline;i++)
36. {
37. printf("%s\n",lines[i]);
38. }
39.
40. //giiphngbnghm
41. HamGiaiPhong(lines,numberline);
42.
43. getch();
44. }

trnghp3haygp:Xlcontrint**(float**,double**,?????**tngtnh)
CCode:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<conio.h>
3. #include<malloc.h>
4. voidmain(void)
5. {
6. int**array;
7. intsodong=10;
8. intsocot=200;
9.
10. //cpphtbnghm
11. //malloc**
12. array=(int**)calloc(1,sizeof(int*)*sodong);
13.
14. for(inti=0;i<sodong;i++)
15. {
16. //malloc*
17. array[i]=(int*)calloc(1,socot);
18. }
19.
20. //giiphng
21. //free*
22. for(inti=0;i<sodong;i++)free(array[i]);
23. //free**
24. free(array);
25.
26. getch();
27. }

Phlc1.'\0'lg?
Hmnayupdate1cuhirthay,ringcinythcnhiungithtskohiurbnchtcan,vvymnhxinupdatepnnhsau
+'\0'l1 hngktcml0
+'\0'ccoilnullterminatedcharacter
+lktktthcchuiANSI(char*vccdnxutcuchar*)
VycnNULL??????????????
+NULLl1 hngsnguyn:0
+CschuynigiamidngcontrsangNULL
'\0'khcviNULLchno(nubntinh,chcncontrnlbnshiuravnngaylptc,nukothhycheckoncodesau

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

22/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

nha)
C++Code:
1.
2.
3.
4.
5.
6.
7.
8.
9.

SelectAll|Show/Hide

#include<stdio.h>
#include<conio.h>

voidmain()
{
printf("%d\n",sizeof('\0'));//inra1
printf("%d\n",sizeof(NULL));//inra4
getch();
}

III.Trchdn1cuvuivcontr?
Nguynbncgibiicttrack

Hmnayphiomri,nglmnhkhngtrthnhkomnuphthinratinysmhn.
Mnhccukhcchomingivthaotccontrnngcao:
C++Code:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<stdlib.h>
3. #include<string.h>
4.
5. char*(*((*aa[10][10])()))(char**as,intsize);
6. char*hs[]={"Nguyen","Quang","Hien"};//mtmngccchui
7. //khaibopa,pf,tfy
8. intmain()
9. {
10.
11.
12. for(pa=aa;pa<&aa[10];++pa)
13. for(pf=*pa;pf<*pa+10;++pf)
14. *pf=0;
15. aa[0][0]=&ts;
16. printf("%s",aa[0][0]()(hs,sizeof(hs)/sizeof(char*)));//inramtchuigmccktucamnghs
17. return0;
18. }

Trongonmcsdngccbinsau:pa,pf,tsnhngchackhaibo.Hykhaiboccbinny(cngthmnhnghahmkhcnucn)saocho
onmtronghmmaincthchyc(khngdngccchthtinxl,khngsagmain),ngthiktqucahmprintfphacuion
mtrnslchuigmccktucamnghs(mnghslmngbtk),trongtrnghpcthcaonmtrnthural
Output:
Code:
NQH

Giithchkhaibony:
C++Code:

SelectAll|Show/Hide

1. char*(*((*aa[10][10])()))(char**as,intsize);

Giithchtcdngcaonmny
C++Code:

SelectAll|Show/Hide

1. for(pa=aa;pa<&aa[10];++pa)
2. for(pf=*pa;pf<*pa+10;++pf)
3. *pf=0;

Nguynbncgibilangman

cicuny,itomnytt:(nhngmcinyhaynnmnhngtnhvicu....hjhj
mnhdnglogicphntchcuhicacunh
PHPCode:
char*(*((*aa[10][10])()))(char**as,intsize);

Bc1:utin,mnhdchoncodesau
PHPCode:
char*(*p);
p=2;

nhncthngbonhsau:cannotconvertfrom'int'to'char**'
vycnghalpylchar**
vyldone1vn
Bc2:
PHPCode:
char*(*p)(char**,int);
p=2;

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

23/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
nhncthngbonhsau:cannotconvertfrom'int'to'char*(__cdecl*)(char**,int)
vytathy1iu:yl1contrhmvitp,chunhnphil
PHPCode:
char*(*p)(char**,int);

//ci*utinphiavgncharmilchun,
//gingnhlchar*gets(char*)
//char*ylkiudliutrv
Bc3:
PHPCode:
char*(*p)(char**a,intb);
p=2;

mvnnhncthngbonhth,vycnghalcinhdanhthmvkocnghag,
=>giithchcci(char**as,intsize)
cabnrinh,onnycnilcontrhmc2thamstruynvol
(char**,int)
vitlil
PHPCode:
char*(*((*aa[10][10])()))(char**,int);

Bc4:tiptheo
dchth
PHPCode:
char*(*(*p))(char**,int);
p="aa";

nhncthngbovtithynhontongingvi
PHPCode:
char*(**p)(char**,int);
p="aa";

ok?vnnylidhiuhn

Bc5:quantrngnht
PHPCode:
voidham(inta)(intb,intc)
{
cout<<a<<"lanhi";
}
voidmain()
{
ham(2)(2,3);
system("pause");
}

dchcodeny,tinhncdngboli:functionreturnsfunction
,li1vnnacthcmc,l2cingocnycabn
(*aa[][])()
tihiu,
char*(*((*p)()))(char**as,intsize)
cciontingstrv1tnhmhoccontrhm(chabnchitit,chtitbc7)vtrthnh
PHPCode:
char*hm(char**,int)

ok.vngiiquyt60%
Bc6:
PHPCode:
char*(*((*aa[10][10])()))(char**,int);

chkhcbc5chyl1mngcccontrnhbc5
Bc7:
char*(*((*aa)()))(char**,int)
gis((*aa)())trvtnhmlhamx
vytac
char*(*hamx)(char**,int)
vynyvncgiiquyt99%ri,
.....................ok??????
vynginhavn,tacylkhaibo1mngcontr...hjhjhj....

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

24/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao
Nguynbncgibiicttrack

cinyngltslangman.yucubimnhcnirng
Binycngrtkhoai,mnhxingiipmtphnbitpny.
C++Code:

SelectAll|Show/Hide

1. char*(*((*aa[10][10])()))(char**as,intsize);

Khaibotrncnghalkhaibomtmngcamngcontrhmtrvcontrhmtrvcontrkiuchar.
ylmgiipbicamnh,bindchdidngmC,chyctrnVC++vGNUGCC
CCode:

SelectAll|Show/Hide

1. #include<stdio.h>
2. #include<stdlib.h>
3. #include<string.h>
4.
5. char*firstLetter(char**as,intsize)
6. {
7. staticchar*s=0;
8. inti;
9. if(s!=0)
10. free(s);
11. //minhhoachobaitap,macducororibonho
12. s=(char*)malloc(sizeof(char)*(size+1));
13. for(i=0;i<size;++i)
14. s[i]=as[i][0];
15. s[i]='\0';
16. returns;
17. }
18.
19. char*(*(ts()))(char**as,intsize)
20. {
21. return&firstLetter;
22. }
23.
24.
25. intmain()
26. {
27.
28. char*(*((*(*pa)[10])()))(char**as,intsize);
29. char*(*((*aa[10][10])()))(char**as,intsize);
30. char*(*((**pf)()))(char**as,intsize);
31. char*hs[]={"Nguyen","Quang","Hien"};
32. for(pa=aa;pa<&aa[10];++pa)
33. for(pf=*pa;pf<*pa+10;++pf)
34. *pf=0;
35. aa[0][0]=&ts;
36. printf("%s",aa[0][0]()(hs,sizeof(hs)/sizeof(char*)));
37. return0;
38. }

Vionmyyri,mingicthgiithchcccuhimnhnukhng?

(chavitxong)
cchnhsalncuibilangman:23112013lc03:15PM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists
BiTnQuang

09122010, 04:56PM

#9

langman

Ngygianhp:
062007
Ni:
C:\WINDOWS\system32\dllcache\
Bivit:
2,990

Thnhvinmi

ChapIX:C++0xvcontrthngminh(smartpointerinC++0x)
updatesau
cchnhsalncuibilangman:13042013lc02:53AM.

^_,^
Tnghpcccuchuynhihcvuinhn,sdngSpeechSynthesisc:https://www.youtube.com/channel/UCLk...Tjrg/playlists
BiTnQuang

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

25/26

13/5/2015

C++0xTutorial:Tmhiubnchtcacontrtcbnnnngcao

09122010, 07:14PM

#10

zstar

Ngygianhp:
Ni:
Bivit:

Moderator

042009
Gmcu
2,230

nghlangman,mongcutiptcmingicdphchi
binyrtttchonewbie
thank!

Trang1trntngs18 1 2 3 11 ...
QuickNavigation

Cuicng

Ththut,TutorialsvMngunC/C++/C++0x Top

tilintrc|tilinsau
Cctitngt
MSSQLLiSQLServer2005expresschychmkhichyreport?

GibidongtrientrongdinnThcmcMicrosoftSQLServer&MicrosoftAccess
QSmartS15thitkchcchnchyandroidgir

Gibi16thang4trongdinnGiithiuwebsite,snphmcabn
Lmsaokhichytrctipappnythkhngchymphilyappkhcginmichy??

Gibipimpim_kutetrongdinnThcmclptrnhC#

Trli:1
Bivitcui:26032013,09:12PM
Trli:0
Bivitcui:22082012,04:07PM
Trli:4
Bivitcui:28062012,03:35PM

Quynhncabn

Bnkhngthgitimi
Bnkhngthgibitrli
Bnkhngthgiccnhkm
Bnkhngthchnhsabivitcabn
Tmhiulutlthamgiadinn

BBcode:On
Mtci:On
[IMG]code:On
[VIDEO]codeisOn
HTMLcode:Off

6Cchtngchiucao
Cngkhmphnhngmonhgiptngchiucaonhanh.Xemngay!

Linhchngti CngngCVit Archive Top

ComputerStyle

SnglpbiKevinHoang@2006
NgunccungcpbivBulletin4.2.2
Bnquynngun2015vBulletinSolutions,Inc

TonbthigiantnhtheomiGMT+7.Bygil01:26AM.

SdngvphttrinbiCngngCVit:20062014

http://diendan.congdongcviet.com/threads/t42977::timhieubanchatcuacontrotucobandennangcao.cpp

26/26

You might also like