c/c++ÅàѵCÓïÑÔºËÐÄ֪ʶ×ܽá(Ò»)
¸üÐÂʱ¼ä:2016Äê10ÔÂ21ÈÕ16ʱ26·Ö À´Ô´:ÀÖÓã²¥¿ÍC++ÅàѵѧԺ ä¯ÀÀ´ÎÊý:
CÓïÑÔºËÐÄ֪ʶµãÏà¹Ø×ܽᣨԴ´£©
Á㣺ÉùÃ÷¡¢¶¨Òå¡¢³õʼ»¯
ÉùÃ÷£ºextern ¿ÉÒÔÖÃÓÚ±äÁ¿»òÕߺ¯ÊýÇ°Ãæ£¬Ìáʾ±àÒëÆ÷Óöµ½Õâ¸ö±äÁ¿»òÕߺ¯ÊýµÄʱºò£¬ÔÚÆäËû/µ±Ç°Ä£¿éÀïѰÕÒ¡£
extern int a; // b.c ÓиöÈ«¾Ö±äÁ¿a£¬ÄÇô¿ÉÒÔÔÚa.cÀïÉùÃ÷Õâ¸öa£¬È»ºóÄùýÀ´Ó㬵«ÊDz¢²»´ú±íÎÒÖØÐ¶¨ÒåÁËÒ»¸öa
extern int function(int a, double b, char c);
// ×¢Ò⣺º¯ÊýÔÚ½øÐÐÉùÃ÷µÄʱºò£¬extern ÊÇĬÈÏ¿ÉÒÔÊ¡ÂԵġ£
¶¨Ò壺ûÓмÓÉÏ extern ¾ÍÊǶ¨ÒåÁË¡£¶¨ÒåºóµÄ±äÁ¿ÊÇÓд洢¿Õ¼äµÄ£¬¿ÉÒÔ»ñÈ¡µ½Õâ¸ö±äÁ¿µÄµØÖ·£¬µ«ÊDz»Ò»¶¨ÓÐÖµ¡£
int a;
int arr[10];
³õʼ»¯£º¶¨Òå±äÁ¿µÄͬʱ½øÐи³Öµ²Ù×÷¡£
int a = 10;
int arr[10] = { 0 };
Êý¾ÝÀàÐÍ£º
ÔÚCÓïÑÔÀïµÄÊý¾ÝÀàÐÍ·ÖΪËÄ´óÖÖ£º
1. »ù±¾ÀàÐÍ
ÔÚ²»Í¬Æ½Ì¨ÏÂËùÕ¼×Ö½ÚÊý£º
Linux 64 Windows 64 Linux 32 Windows 32
×Ö·û£º char 1 1 1 1
ÕûÐÍ£º short 2 2 2 2
int 4 4 4 4
long 8 4 4 4
long long 8 8 8 8
size_t 8 8 4 4
¸¡µãÐÍ: float 4 4 4 4
£¨ÊµÐÍ£©double 8 8 8 8
2. ¹¹ÔìÀàÐÍ
Êý×飺´æ´¢ÁËn¸öÏàͬ»ù±¾ÀàÐ͵ÄÊý¾Ý£¬¾ÙÀý£ºsizeof(int) * n ¸ö×Ö½Ú´óС
char str1[5] = "haha"; // Ö»ÒªÓÃ" "À¨ÆðÀ´µÄ¾ÍÊÇ×Ö·û´®£¬Ö»ÒªÊÇ×Ö·û´®×îºóһλ¾ÍÊÇ'\0'
char str2[5] = {'h', 'a', 'h', 'a', 'h'};
str1[2] = 'm';
printf("%s\n", str1);
int iarr[5] = {1, 2, 3, 4, 5};
float farr[5] = {1.1, 2.2, 3.14, 4.15, 5.001};
½á¹¹Ì壺´æ´¢ÁËn¸ö¿ÉÒÔ²»Ïàͬ»ù±¾ÀàÐ͵ÄÊý¾Ý struct
ÁªºÏÌå/¹²Í¬Ì壺 ´æ´¢n¸ö¿ÉÒÔ²»Ïàͬ»ù±¾ÀàÐ͵ÄÊý¾Ý£¬µ«ÊÇÕâÖÖÀàÐÍÀïµÄËùÓÐÊý¾Ý¹²Ïíͬһ¿éÄÚ´æ¿Õ¼ä£¬ÄÚ´æ´óСÊÇ×î´óµÄÄǸöÊý¾ÝÀàÐÍ´óС union
ö¾Ù£º´æ´¢ÁËn¸öÏàͬ»ù±¾ÀàÐ͵ÄÊý¾Ý£¬µ«ÊÇʹÓõÄʱºòÖ»ÄÜÈ¡ÆäÖÐÒ»¸öÖµ£¬ÄÚ´æ´óСÊÇ sizeof(int); enum
3. Ö¸ÕëÀàÐÍ 32λռ4¸ö×Ö½Ú£¬64λռ8¸ö×Ö½Ú
int *p; // Ö¸ÕëÀàÐͱäÁ¿p¾ÍÊÇÓÃÀ´´æ´¢µØÖ·µÄ£¬¶¨ÒåÖ¸ÕëʱºòµÄÊý¾ÝÀàÐÍ£¬´ú±íÕâ¸öÖ¸ÕëÖ¸ÏòµÄÄÚ´æ¿Õ¼äÀï´æ´¢µÄÖµµÄÀàÐÍ
int a = 10;
p = &a;
*p = 20;
printf("%d\n", a);
char *str = "haha"; // char *str ºÍ char str[5] ¶¼ÊÇ´æ´¢×Ö·û´®£¬µ«ÊÇstrÊÇÒ»¸öÖ¸Õ룬strÊÇÒ»¸öÊý×éÃû
printf("%s\n", str); // char str[5] ´æ´¢µÄ"haha"ÊÇÔÚÕ»Çø, char *str Ö¸ÏòµÄ "haha" ÊÇÔÚ³£Á¿Çø£¬str´æ´¢µÄÊÇÕâ¸ö×Ö·û´®ÔÚ³£Á¿ÇøµÄÊ×µØÖ·¡£
*(str + 1) = 'm'; // ´íÎ󣡣¡ ÒòΪstrÀïµÄÄÚÈݱ£´æÔÚ³£Á¿Çø£¬ËùÒÔÀïÃæµÄÖµ²»¿ÉÒÔÐ޸ġ£
4. ¿ÕÀàÐÍ
void ±äÁ¿ £ºÒâ˼ÊÇ¿ÕÀàÐͱäÁ¿£¬²»½ÓÊÜÈκÎÊý¾Ý
void º¯Êý £ºÒâ˼ÊǸú¯ÊýûÓзµ»ØÖµ
void Ö¸Õë £ºÒâ˼ÊÇ¿ÉÒÔ½ÓÊÕÈÎºÎÆäËûÀàÐ͵ÄÖ¸Õë
Ò»¡¢ ×Ö·û´®º¯Êý <string.h>
1 strlen(char *str);
Õâ¸öº¯Êý·µ»ØÖµÊÇÒ»¸ö×Ö·û´®µÄÓÐЧ³¤¶È(³ýÈ¥'\0'), ÓбðÓÚ sizeof() ÔËËã·û;
2 strnlen(char *str, int maxlen);
Õâ¸öº¯ÊýÊÇ·µ»Ø maxlen ³¤¶ÈÒÔÄÚ¡¢²»º¬'\0'µÄ×Ö·û´®µÄ³¤¶È¡£
3 strcat(char *str1, char *str2);
½«²ÎÊýstr2 ×·¼Óµ½ str1µÄºóÃæ£¨¸²¸Çstr1ºóÃæµÄ'\0'£©
4 strncat(char *str1, char *str2, int maxlen);
½«²ÎÊýstr2 ×·¼Óµ½ str1µÄºóÃæ£¬µ«ÊÇÖ»×·¼Óstr2µÄǰmaxlen¸ö×Ö½Ú³¤¶ÈµÄ×Ö·û´®¡£
5 strcmp(char *str1, char *str2);
°´×Ö·ûÒÀ´Î±È½ÏÁ½¸ö×Ö·û´®£¬Ö±µ½Óöµ½²»Í¬µÄ×Ö·ûΪֹ£º
Èç¹ûstr1´óÓÚstr2£¬·µ»ØÕýÊý£¨WindowsÏÂÊÇ·µ»Ø1£¬LinuxÏÂÊÇ·µ»ØÁ½¸ö²»Í¬×Ö·û´®µÄasciiÂë²îÖµ£©
Èç¹ûstr1СÓÚstr2£¬·µ»Ø¸ºÊý£¨WindowsÏÂÊÇ·µ»Ø-1£¬LinuxÏÂÊÇ·µ»ØÁ½¸ö²»Í¬×Ö·û´®µÄasciiÂë²îÖµ£©
Èç¹ûÁ½¸ö×Ö·û´®ÏàµÈ£¬·µ»Ø 0
¾ÙÀý£º str1 = "abcde"; str2 = "c";
strcmp(str1, str2); ·µ»ØÖµÊÇ£¨WindowsÏÂÊÇ·µ»Ø-1£¬LinuxÏÂÊÇ·µ»ØÁ½¸ö²»Í¬×Ö·û´®µÄasciiÂë²îÖµ£º -2£©
6 strncmp(char *str1, char *str2, int maxlen);
ºÍ strcmp()º¯Êý·µ»ØÖµÏàͬ£¬µ«ÊÇÖ»±È½Ïǰ maxlen ¸ö×Ö·û;
7 strcpy(char *str1, char *str2);
½«²ÎÊý str2 µÄ×Ö·û´®¿½±´µ½²ÎÊý str1 ÀïÃæ¡££¨¿½±´µÄ×Ö·û°üÀ¨'\0'£©
8 strncpy(char *str1, char *str2, int maxlen);
½«²ÎÊý str2 µÄǰ maxlen ¸ö×Ö·û¿½±´µ½ str1 Àï¡£
9 strchr(char *str, char ch); //ÔÀ´ÊÇ int ch£¬µ«ÊǺ¯ÊýÔÚµ÷ÓõÄʱºò£¬»áת»»³Échar ch
ÔÚstrÖвéÕÒÖ¸¶¨×Ö·ûch£¬Èç¹ûÕÒµ½µÄ»°·µ»ØchÔÚstrÖеÄλÖã¬Èç¹ûûÕÒµ½£¬·µ»Ø NULL // (void*) 0
10 strstr(char *str1, char *str2);
ÔÚstr1ÖвéÕÒÖ¸¶¨×Ö·û´®str2£¬Èç¹ûÕÒµ½µÄ»°·µ»Østr2ÔÚstr1ÖеÄλÖã¬Èç¹ûûÕÒµ½£¬·µ»Ø NULL
11 strtok(char *str, char delim);
·Ö½â×Ö·û´® str Ϊһ×é×Ö·û´®×Ó´®£¬ÓÃdelim×öΪ×Ö·û´®µÄ·Ö¸ô·û¡£
strtok()º¯Êýÿ´Î·Ö¸ô»á°Ñ·Ö¸ô·ûµÄλÖÃÖÃΪ '\0', ͬʱ»áÆÆ»µÔÏÈ×Ö·û´®µÄÍêÕûÐÔ;
µ÷Óú¯ÊýǰµÄ×Ö·û´®ºÍµ÷Óú¯ÊýºóµÄ×Ö·û£¬ÒѾ²»Ò»ÑùÁË¡£ËùÒÔÎÒÃÇÔÚ×ö×Ö·û´®·Ö¸ôµÄʱºò£¬¸üÍÆ¼öʹÓà sscanf();
12 sscanf(char *str, char *format, argument...);
scanf()º¯ÊýÊÇ´Ó¼üÅÌÉ϶ÁÈ¡Óû§ÊäÈ룬Ȼºó°Ñֵдµ½±äÁ¿Àï;
sscanf()º¯ÊýÊÇ´ÓstrÀï¶ÁÈ¡Êý¾Ý£¬°´ÕÕformat¸ñʽ£¬½«Êý¾ÝдÈëµ½±äÁ¿Àï¡£
·µ»ØÖµÊdzɹ¦Ð´ÈëµÄÊý¾ÝÊýÁ¿;
int a, b, c;
char s1[10] = { 0 };
char s2[10] = { 0 };
char s3[10] = { 0 };
sscanf("2016-05-31", "%d - %d - %d", &a, &b, &c);
// °´ÕÕ %d - %d - %d µÄ¸ñʽ·Ö¸ô£¬°Ñ2016¡¢05¡¢31 ÕâÈý¸öÕûÊýдÈëµ½a¡¢b¡¢cÀï
sscanf("2016 - 05 - 31", "%s - %s - %s", s1, s2, s3);
// °´ÕÕ %s - %s - %s µÄ¸ñʽ·Ö¸ô£¬°Ñ2016¡¢05¡¢31 ÕâÈý¸ö×Ö·û´®Ð´Èëµ½s1¡¢s2¡¢cÀï
// %s Æ¥ÅäÒ»´®·Ç¿Õ°××Ö·û£¬´ÓÊäÈë×Ö·ûÖеĵÚÒ»¸ö·Ç¿Õ°××Ö·û¿ªÊ¼Æ¥Åäµ½ÏÂÒ»¸ö¿Õ°××Ö·û֮ǰ£¬
// »òÕ߯¥Åäµ½Ö¸¶¨µÄ¿í¶È£¬¸³Öµ²ÎÊýµÄÀàÐÍÊÇchar *£¬Ä©Î²×Ô¶¯Ìí¼Ó'\0'¡£
13 sprintf(char *str, char *format, argument...);
printf()º¯ÊýÊǰѸñʽ»¯ºóµÄ½á¹ûÊä³öµ½ÆÁÄ»ÉÏ;
sprintf()º¯ÊýÊǰѸñʽ»¯ºóµÄ½á¹ûдÈëµ½×Ö·û´®strÀï;
·µ»ØÖµÊÇ str±»Ð´ÈëµÄ×Ö½ÚÊý£¬²»°üÀ¨'\0';
char i[10] = "I";
char you[10] = "You";
char str[100] = { 0 };
sprintf(str, "%s love %s", i, you);
// Êä³ö×Ö·û´®"I love You"µ½×Ö·û´® str Àï
sprintf(str, "%10.3f", 0.1234567);
// Êä³ö×Ö·û´® " 0.123" µ½×Ö·û´® str ÀÔÏȵÄÄÚÈݻᱻÇå¿Õ)
14 ×Ö·û´®×ª»»º¯Êý <stdlib.h>
atoi();
°ÑÒ»¸ö char ÀàÐ͵ÄÊý×éת»»³ÉÒ»¸ö int.
itoa()°ÑÒ»¸ö int ÀàÐ͵ÄÊý×Öת»»³ÉcharÀàÐ͵Ä×Ö·û´®(Ö»ÄÜÔÚVisual C++ ±àÒëÆ÷ÏÂʹÓÃ);
// LinuxÊÇûÓеÄ
atoll();
°ÑÒ»¸ö char ÀàÐ͵ÄÊý×éת»»³ÉÒ»¸ö long long.
atof();
°ÑÒ»¸ö char ÀàÐ͵ÄÊý×éת»»³ÉÒ»¸ö double.
¾ÙÀý£º
char str[10] = "....."; //int float long long
int / double / long long n = atoi(str) / atof(str) / atoll(str);
printf("%d / %lf / %ld\n", n);
±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍC++ÅàѵѧԺËùÓУ¬»¶Ó×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿ÍC/C++ÅàѵѧԺ
Ê×·¢£ºhttp://www.itcast.cn/c/