Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

c new

C++ newÓ÷¨Ïà¹Ø¾­Ñé×ܽá
×÷Õß: ØýÃû, ¡¡³ö´¦:ITר¼ÒÍø,¡¡ÔðÈα༭: лåûåû,¡¡2010-04-16 07:00
¡¡¡¡C++ ±à³ÌÓïÑÔÖÐÓÐÒ»ÖÖ½Ð×önewµÄÊõÓï¡£²»¹ýÕâÒ»¸ÅÄîÊDZȽÏÄ£ºýµÄ£¬ÓÐЩÈ˰ÑËüÀí½âΪnewº¯Êý£¬µ«ÊÇÓеÄÈËÓÖ»á°ÑËüÀí½âΪnewÔËËã·û¡£ÄÇôËüµÄÕæÕýº¬ÒåÓÖÊÇÈçºÎµÄÄØ?ÔÚÕâÀïÎÒÃǽ«»áͨ¹ý¶ÔC++ newÓ÷¨µÄ½éÉÜ£¬°ïÖú´ó¼ÒÒ»Æð·ÖÎöһϡ£
¡¡¡¡C++ ±à³ÌÓïÑÔÖÐÓÐÒ»ÖÖ½Ð×önewµÄÊõÓï¡£²»¹ýÕâÒ»¸ÅÄîÊDZȽÏÄ£ºýµÄ£¬ÓÐЩÈ˰ÑËüÀí½âΪnewº¯Êý£¬µ«ÊÇÓеÄÈËÓÖ»á°ÑËüÀí½âΪnewÔËËã·û¡£ÄÇôËüµÄÕæÕýº¬ÒåÓÖÊÇÈçºÎµÄÄØ?ÔÚÕâÀïÎÒÃǽ«»áͨ¹ý¶ÔC++ newÓ÷¨µÄ½éÉÜ£¬°ïÖú´ó¼ÒÒ»Æð·ÖÎöһϡ£
¡¡¡¡C++ newÓ÷¨Ö®Ò» newÔËËã·û
¡¡¡¡×î³£ÓõÄÊÇ×÷ΪÔËËã·ûµÄnew£¬±ÈÈ磺
¡¡¡¡string *str = new string(¡°test new¡±);
¡¡¡¡×÷ΪÔËËã·û£¬newºÍsizeofÒ»Ñù£¬ÊÇC++ÄÚÖõģ¬Äã²»ÄܶÔËü×öÈκεĸı䣬³ýÁËʹÓÃËü¡£
¡¡¡¡new»áÔÚ¶ÑÉÏ·ÖÅäÒ»¿éÄڴ棬²¢»á×Ô¶¯µ÷ÓÃÀàµÄ¹¹Ô캯Êý¡£
¡¡¡¡C++ newÓ÷¨Ö®¶þ newº¯Êý
¡¡¡¡µÚ¶þÖÖ¾ÍÊÇnewº¯Êý£¬ÆäʵnewÔËËã·ûÄÚ²¿·ÖÅäÄÚ´æÊ¹ÓõľÍÊÇnewº¯Êý£¬Ô­ÐÍÊÇ£º
¡¡void *operator new(size_t size);
¡¡¡¡newº¯Êý·µ»ØµÄÊÇÒ»¸övoidÖ¸Õ룬һ¿éδ¾­³õʼ»¯µÄÄÚ´æ¡£ÈçÄãËù¼û£¬ÕâºÍCÓïÑÔµÄmallocÐÐΪÏàËÆ£¬Äã¿ÉÒÔÖØÔØnewº¯Êý£¬²¢ÇÒÔö¼Ó¶îÍâµÄ²ÎÊý£¬µ«ÊDZØÐë±£Ö¤µÚÒ»¸ö²ÎÊý±ØÐëÊÇsize_tÀàÐÍ£¬ËüÖ¸Ã÷ÁË·ÖÅäÄÚ´æ¿éµÄ´óС£¬C++ÔÊÐíÄãÕâô×ö£¬µ±È»Ò»°ãÇé¿öÏÂÕâÊDz»±ØÒªµÄ¡£Èç¹ûÖØÔØÁËnewº¯Êý£¬ÔÚʹÓÃnew²Ù×÷·ûʱµ÷ÓõľÍÊÇÄãÖØÔØºóµÄnewº¯ÊýÁË¡£
¡¡¡¡Èç¹ûʹÓÃnewº¯Êý£¬ºÍÓï¾ästring *str = new string(¡°test new¡±)Ïà¶ÔµÄ´úÂë´ó¸ÅÊÇÈçϵÄÑù×Ó£º
¡¡¡¡1.string *str = (string*)operator new(sizeof(string));
¡¡¡¡2.str.string(¡°test new¡±);
¡¡¡¡3.// µ±È»Õâ¸öµ÷ÓÃʱ·Ç·¨µÄ£¬µ«ÊDZàÒëÆ÷ÊÇûÓÐÕâ¸öÏÞÖÆµÄ
¡¡¡¡Õ⻹²»ËãÍ꣬»¹ÓеÚÈýÖÖµÄnew´æÔÚ¡£
¡¡¡¡C++ newÓ÷¨Ö®Èý placement new
¡¡¡¡µÚÈýÖÖ£¬placement new£¬ÕâÒ²ÊÇnew×÷Ϊº¯ÊýµÄÒ»ÖÖÓ÷¨£¬ËüÔÊÐíÄãÔÚÒ»¿éÒÑ´æÔÚµÄÄÚ´æÉÏ·ÖÅäÒ»¸ö¶ÔÏ󣬶øÄÚ´æÉϵÄÊý¾Ý²»»á±»¸²¸Ç»òÕß±»ÄãÖ÷¶¯¸Äд£¬placement newͬÑùÓÉnew²Ù×÷·ûµ÷Ó㬵÷ÓøñʽÊÇ£º
¡¡new (buffer) type(size_t size);
¡¡¡¡ÏÈ¿´¿´ÏÂÃæµÄ´úÂ룺
¡¡ 4.char str[22];
¡¡¡¡5.int data = 123;
¡¡¡¡6.int *pa = new (&data) int;
¡¡¡¡7.int *pb = new (str) int(9);
¡¡¡¡½á¹û*pa = 123(δ¸²¸ÇÔ­Êý¾Ý)£¬¶ø*pb = 9(¸²¸ÇÔ­Êý¾Ý)£¬¿ÉÒÔ¿´µ½placement


Ïà¹ØÎĵµ£º

C/C++ ³ÌÐòÉè¼ÆÔ±Ó¦Æ¸³£¼ûÃæÊÔÊÔÌâÉîÈëÆÊÎöÖ®¶þ

   3.ÄÚ¹¦Ìâ 
¡¡¡¡ÊÔÌâ1£º·Ö±ð¸ø³öBOOL£¬int£¬float£¬Ö¸Õë±äÁ¿ Óë“ÁãÖµ”±È½ÏµÄ if Óï¾ä£¨¼ÙÉè±äÁ¿ÃûΪvar£© 
¡¡¡¡½â´ð£º 
¡¡¡¡¡¡BOOLÐͱäÁ¿£ºif(!var) 
¡¡¡¡¡¡intÐͱäÁ¿£º if(var==0) 
¡¡¡¡¡¡floatÐͱäÁ¿£º 
¡¡¡¡¡¡const float EPSINON = 0.00001; 
¡¡¡¡¡ ......

C bomb¡£¡£¡£¡£FML~~~

Êä³öì³²¨ÄÇÆõÊýÁÐǰN¸öºÏÊý£¬ËĸöÒ»ÐУ¬NÓÉʹÓÃÕßÊäÈ룬½éÓÚ10µ½30Ö®¼ä¡£
#include<stdio.h>
#include<math.h>
int fab(int);
int judge(int);
int main()
{
int a[30]={0};
int i,n,t=0;
do
{
printf("Input the number\n");
scanf("%d",&n);
}
while(n>3 ......

extern extern ¡°C¡±

externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©.
Ëü¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔÔÚ±¾Ä£¿é»òÆäËüÄ£¿éÖÐʹÓá£
1¡£¶ÔÓÚextern±äÁ¿À´Ëµ£¬½ö½öÊÇÒ»¸ö±äÁ¿µÄÉùÃ÷£¬Æä²¢²»ÊÇÔÚ¶¨Òå·ÖÅäÄÚ´æ¿Õ¼ä¡£Èç¹û¸Ã±äÁ¿¶¨Òå¶à´Î£¬»áÓÐÁ¬½Ó´íÎó
2¡£Í¨³££¬ÔÚÄ£¿éµÄÍ·ÎļþÖжԱ¾Ä£¿éÌṩ¸øÆäËüÄ£¿éÒýÓõĺ¯ÊýºÍ ......

C/C++µ¥Ôª²âÊÔÀíÂÛ¾«Òª£¨Î壩

µÚ¶þÕ Õ÷·þ¿É²âÐÔÄÑÌâ
 
2.1 ¿É²âÐÔÎÊÌâÏê½â£¨1£©
 
    µ¥Ôª²âÊÔÐ§ÒæÌØ±ð¸ß£¬·½·¨Ò²ºÜ¼òµ¥£¬µ«È´³¢ÊÔµÄÆóÒµºÜ¶à£¬³É¹¦ÊµÊ©µÄÆóÒµºÜÉÙ£¬ÎªÊ²Ã´ÄØ£¿Ö÷ÒªÔ­Òò¾ÍÊÇÄÑÓÚÍ»ÆÆ¿É²âÐÔÎÊÌâ¡£“¿É²â”Õâ¸ö´Ê£¬Òâ˼ÒѾ­ºÜÃ÷°×ÁË£¬Èç¹û²»“¿É²â”µÄ»°£¬ÄǾÍÊDz»Äܲ⣬û·¨²â£¬¾ÍÊÇ× ......

C³ÌÐò£º¶¨Òåºê´òӡijλÓò¹²ÓжàÉÙλ

#include <stdio.h>
#define bits(p, d) { \
int _tmp=p->d, _bits=0; \
for (p->d=1; p->d; p->d<<=1) \
_bits++; \
p->d=_tmp; \
printf("%s->%s has %d bits", #p, #d, _bits); \
}
typedef struct _s{
int a:4;
} S;
int main()
{
S tmp, ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ