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

C/C++ÓïÑÔÖÐÖ¸ÕëµÄÒâÒå

¿´µ½Õâ¸öÃæÊÔÌâ,¹À¼ÆºÜ¶à¸ÕѧCÖ¸ÕëµÄͬѧ¶¼»á¸ã´í.
void GetMemory(char *p)
{
// ´«µÝ½øÀ´µÄµÄֵʹµÃ*p==NULL
// ÕâÀïÐ޸ĵÄÊÇÕâ¸öº¯ÊýÄÚµÄÁÙʱָÕë±äÁ¿pµÄÖµ
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
// ´«µÝ½øÈ¥µÄÊÇstrµÄÖµNULL
GetMemory(str);
// ÕâÀïstrÖ¸Õ벢δ¸³Öµ,ÈÔÈ»ÊÇNULL,ËùÒÔÕâÀ︳ֵ»á³ö´í
strcpy(str, "Hello World");
printf("%s\n", str);
free(str);
}

ÎÒÃÇÖªµÀ¼ÆËã»úÖ»ÈÏʶ0ºÍ1,ËùÓеÄÊý¾Ý,°üÀ¨Í¼Æ¬,ÎÄ×ÖµÈ×îÖÕ¶¼ÊÇת»»³É0ºÍ1À´±íʾ.
ΪÁË·½±ã˵Ã÷,ÎÒÃÇÓÃÊ®Áù¸ö¶þ½øÖÆÊý×é³ÉµÄÒ»¸öÊ®Áù½øÖÆÊýÀ´±íʾ.
ÔÚwin32ϵͳÖÐ,ÄÚ´æµØÖ·ÊÇ´Ó0µ½2^32bit(Ï൱ÓÚ0µ½4GB),win32ÖÐVC6.0ÖÐÖ¸Õë±¾ÖʾÍÊÇÒ»¸öÕ¼4¸ö×Ö½ÚµÄÎÞ·ûºÅÕûÐÎ(unsigned int),ÄÜÈ¡0µ½2^32ÖÐËùÓеÄÖµµÄÈÎÒ»¸öÖµ,¼´Ö¸ÕëÄÜÏò¼ÆËã»úÄÚ´æÖÐÈκÎÒ»¸öµØÖ·.
// pCharÖ¸ÏòµÄÒ»¸öcharÐͱäÁ¿(×¢Òâ×Ö·ûºÍ×Ö·û´®¸ÅÄîÇø·Ö¿ª)
char *pChar = NULL;
// pIntÖ¸ÏòµÄÊÇÒ»¸öintÐͱäÁ¿
int *pInt = NULL;
// pDoubleÖ¸ÏòµÄÊÇÒ»¸öpDoubleÐͱäÁ¿
double *pDouble = NULL;
struct node
{
int i, j, k;
};
// pNodeÖ¸ÏòµÄÊÇÒ»¸ö×Ô¶¨Òå½á¹¹Ìå±äÁ¿
struct node *pNode = NULL;
class TestClass
{
TestClass()
{
}
~TestClass()
{
}
};
// pClassÖ¸ÏòµÄÊÇÒ»¸ö×Ô¶¨ÒåÀà±äÁ¿
TestClass *pClass = NULL;
void Test(void)
{
printf("This is test function!\n");
}
typedef void (*pFunction)(void);
// pFunÖ¸ÏòµÄÊÇÒ»¸öTestÐͺ¯Êý
pFunction pFun = Test;
void Test1(void)
{
printf("sizeof(pChar)=%d\n", sizeof(pChar));
printf("sizeof(pInt)=%d\n", sizeof(pInt));
printf("sizeof(pDouble)=%d\n", sizeof(pDouble));
printf("sizeof(pNode)=%d\n", sizeof(pNode));
printf("sizeof(pClass)=%d\n", sizeof(pClass));
printf("sizeof(pFun)=%d\n", sizeof(pFun));
}
´òÓ¡µÄ½á¹ûÈçÏÂ:
sizeof(pChar)=4
sizeof(pInt)=4
sizeof(pDouble)=4
sizeof(pNode)=4
sizeof(pClass)=4
sizeof(pFun)=4
Press any key to continue
ÉÏÃæ¶¨ÒåµÄÖ¸ÕëºÍÆäËüϵͳÄܶ¨ÒåµÄËùÓÐÖ¸ÕëÔÚwin32ϵͳÖÐÓÃsizeof²âÊÔ¶¼ÊÇ4.
Ö¸ÕëÓÐÊ²Ã´Çø±ðÄØ?
±ÈÈçchar *pCharºÍint *pInt:
pCharÖ»ÊǸæËß³ÌÐòÎ


Ïà¹ØÎĵµ£º

CÓïÑÔÎļþ

13.1 CÎļþ¸ÅÊö
    Ëùν“Îļþ”ÊÇÖ¸Ò»×éÏà¹ØÊý¾ÝµÄÓÐÐò¼¯ºÏ¡£Õâ¸öÊý¾Ý¼¯ÓÐÒ»¸öÃû³Æ£¬½Ð×öÎļþÃû¡£Êµ¼ÊÉÏÔÚÇ°ÃæµÄ¸÷ÕÂÖÐÎÒÃÇÒѾ­¶à´ÎʹÓÃÁËÎļþ£¬ÀýÈçÔ´³ÌÐòÎļþ¡¢Ä¿±êÎļþ¡¢¿ÉÖ´ÐÐÎļþ¡¢¿âÎļþ (Í·Îļþ)µÈ¡£
    Îļþͨ³£ÊÇפÁôÔÚÍⲿ½éÖÊ(Èç´ÅÅ̵È)Éϵģ¬ÔÚʹÓÃʱ²Åµ÷ÈëÄÚ´æÖ ......

CµÄÀúÊ·

CµÄÓÉÀ´
CÓïÑÔÊÇÓÉUNIXµÄÑÐÖÆÕßDennis RitchieºÍKen ThompsonÓÚ1970ÄêÑÐÖÆ³öµÄBÓïÑԵĻù´¡ÉÏ·¢Õ¹ºÍÍêÉÆÆðÀ´µÄ.
CµÄÌØµã
CÓïÑÔÊÇÒ»ÖÖÃæÏò¹ý³ÌµÄÓïÑÔ,ͬʱ¾ßÓлã±àÓïÑԺ͸߼¶ÓïÑÔµÄÓŵã.CÓïÑÔ¿ÉÒԹ㷺ӦÓÃÓÚ²»Í¬µÄ²Ù×÷ϵͳ,ÈçUNIX,DOS,Windows¼°LinuxµÈ.
CµÄ·¢Õ¹
1973Äê,CÓïÑÔµÚÒ»´Î±»ÓÃÀ´±àд²Ù×÷ϵͳ(Unix)µÄÄÚºË.Denn ......

¿ìËÙÅÅÐò(QuickSort)CÓïÑÔ°æ

¿ìËÙÅÅÐòµÄºËÐÄÔÚÓÚ·ÖÖÎ.
·ÖÖÎËã·¨:
1. È϶¨Ö»ÓÐÒ»¸öÔªËØ»òûÓÐÔªËØµÄÊý×éÊÇÓÐÐòµÄ.
2. ½«Êý×é°´ÕÕÒ»¸ö·Ö½çÖµ·ÖΪ×óÓÒÁ½²¿·Ö. ×óÃæËùÓÐÔªËØÖµ±È·Ö½çֵС, ÓÒÃæËùÓÐÔªËØÖµ±È·Ö½çÖµ´ó»òµÈÓÚ.
3. ½«×óÓÒÁ½²¿·Ö·Ö±ðÔÙ·ÖÖÎ, Ö±µ½Òª·ÖÖ§µÄ²¿·ÖÖ»ÓÐÒ»¸öÔªËØ»òûÓÐÔªËØ, ÄÇôÕû¸öÊý×é¾ÍÊÇÓÐÐòµÄÁË.
×÷Õß: selfimpr
²©¿Í: http ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ