C ÓïÑÔÖеÄÀàÐÍת»»ÎÊÌâ
C ÓïÑÔÖеÄÀàÐÍת»»ÎÊÌâ
Ò»¡¢ÎÊÌâµÄÒý³ö
¿´ÏÂÃæÒ»¶Î C ³ÌÐò£º
#include <stdio.h>
int main()
{
short a, b;
float f;
double d;
int i1, i2;
i1 = i2 = 2000000000; //²âÊÔ»·¾³ÖÐ int µÄ±íʾ·¶Î§Îª -2147483648 ~ 2147483647
printf("%d\n", i1+i2); //Òç³ö£¡
a = b = 30000; //²âÊÔ»·¾³ÖÐ short µÄ±íʾ·¶Î§Îª -32768 ~ 32767
printf("%d\n", a+b); //Òç³ö£¿
f = d = 123456789.0;
printf("%f\n", f); //Õý³£Êä³ö£¿
printf("%f\n", d); //Õý³£Êä³ö£¿
return 0;
}
ÔËÐгÌÐòÎÒÃÇ¿´µ½£¬i1+i2 µÄ½á¹ûÀíËùÓ¦µ±µØÒç³öÁË£¬¶ø a+b µÄ½á¹ûȴûÓÐÏñÏëÏóÖеÄÄÇÑùÒç³öΪһ¸ö¸ºÊý¡£
ÁíÍ⣬printf ÖУ¬%f ¶ÔÓÚ float ºÍ double Ð͵ÄÖµ¶¼Äܹ»ÕýÈ·Êä³ö¡£È»¶øÔÚ´ó¶àÊýϵͳÉÏ£¬float ºÍ double µÄÄÚ´æ½á¹¹²¢²»Ïàͬ¡£
ÀàËÆµØ£¬%d Ò²ÄÜͬʱ½ÓÊÕ short ºÍ int Ð͵ÄÊý¾Ý¡£
ÈçºÎ½âÊÍÉÏÃæµÄÏÖÏó£¿
¶þ¡¢ÎÊÌâµÄ½â´ð——ĬÈÏÀàÐÍת»»
C ÓïÑԹ涨ÁËÒ»ÀàÀàÐÍת»»£¬³Æ×÷“³£ÓÃËãÊõÀàÐÍת»»”£¨Usual arithmetic conversions£©£¬ÓÃÓÚ±í´ïʽÇóÖµµÄÀàÐ͵÷Õû£¬³£¼ûµÄ“µÍ¾«¶ÈÀàÐÍÏò¸ß¾«¶ÈÀàÐÍ¿¿”µÄ˵·¨¼´³öÓÚ´Ë¡£
1¡¢¼¸¸öÖØÒª¸ÅÄî
(1) ËãÊõ£¨arithmetic£©ÀàÐÍ£º°üÀ¨ÕûÐͺ͸¡µãÐÍ£¨ÊµÊýºÍ¸´Êý£©
(2) ±êÁ¿£¨scalar£©ÀàÐÍ£º°üÀ¨ËãÊõÀàÐͺÍÖ¸ÕëÀàÐÍ
(3) ¼¯ºÏ£¨aggregate£©ÀàÐÍ£º°üÀ¨Êý×éÀàÐͺͽṹÀàÐÍ
ÉÏÃæµÄ (2) ºÍ (3) ÕâÀïûÓÐÓõ½£¬Ö÷ÒªÊÇΪÁËÍêÕûÐԺͷ½±ãÔĶÁ±ê×¼Ìá³ö¡£
2¡¢ÕýʽÌÖÂÛ
(1) ÕûÊýÀàÐÍÌáÉý£¨integer promotions£©
¡¡¡¡ÊÊÓöÔÏó£º±È int ºÍ unsigned int µÍ¼¶µÄÕûÊýÀàÐÍ»òÕß _Bool, int, signed int ºÍ unsigned int µÄ“λÓò”ÀàÐÍ¡£
¡¡¡¡²Ù×÷£ºÈç¹û int ¿ÉÒÔÈÝÄɱ»×ª»»ÀàÐ͵ÄÒ»ÇÐȡֵ£¬ÔòÌáÉýÖÁ int£¬·ñÔòÌáÉýÖÁ unsigned int¡£
(2) ³£ÓÃËãÊõÀàÐÍת»»£¨Usual arithmetic conversions£©µÄ¹ý³Ì
¡¡¡¡¢ÙÈç¹ûÓи¡µãÊý£¬°´ÕÕ float -> double -> long double µÄ¼¶±ðת»»ÖÁ½Ï¸ßµÄÀàÐÍ¡£
¡¡¡¡¢Ú·ñÔò£¬Ê×ÏÈ×öÕûÊýÀàÐÍÌáÉý£¬È»ºó½«ÌáÉýºóµÄÀàÐÍÔÙ°´ÕûÐͼ¶±ðת»»ÖÁ½Ï¸ßÀàÐÍ¡£
(3) ÒªÇó“³£ÓÃËãÊõÀàÐÍת»»”µÄÇéÐÎ
¡¡¡¡¢Ùµ¥Ä¿ÊýÖµÔËËã·û£¨+, -, ~£©£¬²»°üÀ¨£¨!£©
¡¡¡¡¢Ú³Ë·¨ÐÔÔËËã·û£¨*, /, %£©
¡¡¡¡¢Û¼Ó·¨ÐÔÔËËã·û£¨+, -£©ÖУ¬µ±Á½²àµÄ²Ù×÷Êý¶¼ÊÇËãÊõÀàÐ͵Äʱºò
¡¡¡¡¢
Ïà¹ØÎĵµ£º
Õ⼸ÌìÓÉÓÚÒª¶ÁÈ¡½Ï´óµÄÎı¾Îļþ£¬ËùÒԾͱȽÏÁËÒ»ÏÂÁ½ÕßÖ®¼äµÄЧÂÊÎÊÌâ¡£ ËùÒª¶ÁÈ¡µÄÎı¾Îļþ½á¹¹ÎªÃ¿ÐÐÓÉ5¸öÊý×é³É£¬int int int float int£¬²âÊÔµÄÎļþÓÐ33WÐУ¬´óСΪ9M¡£ÏÖÔÚÒª½«Æä¶Áµ½Ò»¸öcube½á¹¹ÌåÀïÃæÈ¥£¬½á¹¹ÌåÓÐ5¸ö³ÉÔ±±äÁ¿ÓëÖ®¶ÔÓ¦¡£ Á½ÖÖ²Ù×÷µÄ´úÂëÈçÏ start = clock();
......
1. static ±äÁ¿
¾²Ì¬±äÁ¿µÄÀàÐÍ ËµÃ÷·ûÊÇstatic¡£ ¾²Ì¬±äÁ¿µ±È»ÊÇÊôÓÚ¾²Ì¬´æ´¢·½Ê½£¬µ«ÊÇÊôÓÚ¾²Ì¬´æ´¢·½Ê½µÄÁ¿²»Ò»¶¨¾ÍÊǾ²Ì¬±äÁ¿¡£ ÀýÈçÍⲿ±äÁ¿ËäÊôÓÚ¾²Ì¬ ´æ´¢·½Ê½£¬µ«²»Ò»¶¨ÊǾ²Ì¬±äÁ¿£¬±ØÐëÓÉ static¼ÓÒÔ¶¨Òåºó²ÅÄܳÉΪ¾²Ì¬Íⲿ±äÁ¿£¬»ò³Æ¾²Ì¬È«¾Ö±äÁ¿¡£
2. ¾²Ì¬¾Ö²¿±äÁ¿
¾²Ì¬¾Ö²¿±äÁ¿ÊôÓÚ¾²Ì¬´æ´¢·½Ê½£¬Ëü¾ßÓÐÒÔÏ ......
int main(int argc,char *argv[])
argc(argument count):²ÎÊýµÄ¸öÊý£»
argv(argument value):²ÎÊýÖµ
argv[0] :ÎļþÃû
argv[1]£ºµÚÒ»¸ö²ÎÊý£¬argv[2];µÚ¶þ¸ö²ÎÊý£¬ÒÔ´ËÀàÍÆ¡£
±àÒëC
1 µ¥Ô´³ÌÐòµ½¿ÉÖ´ÐгÌÐò
±àÒë & ......
ÀîÈôÀÏÊ¦Ôø¾Ëµ£ºÊÀ½çÉϵijÌÐòÔ±·ÖÈýÖÖ£¬Ò»ÖÖÊÇÓÃEmacs£¬Ò»ÖÖÊÇÓÃVimµÄ£¬ÆäËüµÄ¹éΪµÚÈýÖÖ¡£ÆäÒâÊÇ˵Èç¹ûÒ»¸ö³ÌÐòÔ±Á½Õß¶¼²»Óõϰ£¬ÄÇ´óµÖÊDz»ÄÜ
¹éΪÈëÁ÷ÕßÐÐÁеġ£¶ÔʹÓÃC/C++µÄÈËÀ´Ëµ£¬ºÜ¶àÈËϲ»¶Emacs£¬¾Ý˵Óë¶ÔStallmanµÄ³ç°ÝÓë°®Îݼ°ÎÚÓйØ;-)¡¡µ±È»£¬EmacsÓëVimËä
È»ÔÚÎı¾±à¼·½ÃæµÄÐÔÄÜÊǵȼ۵쬵«Ê¹ÓÃÆðÀ´Á½Õ ......
¹ú¼Ò¡¢ÎÄ»¯ºÍÓïÑÔ¹æÔò¼¯³ÆÎªÇøÓòÉèÖã¬locale.hÍ·ÎļþÖж¨ÒåÁËÇøÓòÉèÖÃÏà¹ØµÄº¯Êý¡£setlocaleº¯ÊýÓÃÓÚÉèÖûò·µ»Øµ±Ç°µÄÇøÓòÌØÐÔ£¬localeconvÓÃÓÚ·µ»Øµ±Ç°ÇøÓòÖеÄÊý×ֺͻõ±ÒÐÅÏ¢£¨±£´æÔÚstruct lconv½á¹¹ÊµÀýÖУ©¡£setlocaleµÄµÚÒ»¸öʵ²ÎÖ¸¶¨Òª¸Ä±äµÄÇøÓòÐÐΪÀà±ð£¬Ô¤¶¨ÒåµÄsetlocaleÀà±ðÓУº
&n ......