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

cÓëc++ staticº¯ÊýµÄÇø±ð

 
cÓëc++ staticº¯ÊýµÄÇø±ð

c
Óëc++ static
º¯ÊýµÄÇø±ð
static
¹Ø¼ü×ÖÊÇ
C, C++
Öж¼´æÔڵĹؼü×Ö
,
ËüÖ÷ÒªÓÐÈýÖÖʹÓ÷½Ê½
,
ÆäÖÐÇ°Á½ÖÖÖ»Ö¸ÔÚ
C
ÓïÑÔÖÐʹÓÃ
,
µÚÈýÖÖÔÚ
C++
ÖÐʹÓÃ
(C,C++
ÖоßÌåϸ΢²Ù×÷²»¾¡Ïàͬ
,
±¾ÎÄÒÔ
C++
Ϊ׼
).
(1)
¾Ö²¿¾²Ì¬±äÁ¿
(2)
Íⲿ¾²Ì¬±äÁ¿
/
º¯Êý
(3)
¾²Ì¬Êý¾Ý³ÉÔ±
/
³ÉÔ±º¯Êý
ÏÂÃæ¾ÍÕâÈýÖÖʹÓ÷½Ê½¼°×¢ÒâÊÂÏî·Ö±ð˵Ã÷
Ò»¡¢¾Ö²¿¾²Ì¬±äÁ¿
ÔÚ
C/C++
ÖÐ
,
¾Ö²¿±äÁ¿°´ÕÕ´æ´¢ÐÎʽ¿É·ÖΪÈýÖÖ
auto, static, register
(<C
ÓïÑÔ³ÌÐòÉè¼Æ
(
µÚ¶þ°æ
)>
Ì·ºÆÇ¿
,
µÚ
174-175
Ò³
)
Óë
auto
ÀàÐÍ
(
ÆÕͨ
)
¾Ö²¿±äÁ¿Ïà±È
, static
¾Ö²¿±äÁ¿ÓÐÈýµã²»Í¬
1.
´æ´¢¿Õ¼ä·ÖÅ䲻ͬ
auto
ÀàÐÍ·ÖÅäÔÚÕ»ÉÏ
,
ÊôÓÚ¶¯Ì¬´æ´¢Àà±ð
,
Õ¼¶¯Ì¬´æ´¢Çø¿Õ¼ä
,
º¯Êýµ÷ÓýáÊøºó×Ô¶¯ÊÍ·Å
,
¶ø
static
·ÖÅäÔÚ¾²Ì¬´æ´¢Çø
,
ÔÚ³ÌÐòÕû¸öÔËÐÐÆڼ䶼²»ÊÍ·Å
.
Á½ÕßÖ®¼äµÄ×÷ÓÃÓòÏàͬ
,
µ«Éú´æÆÚ²»Í¬
.
2. static
¾Ö²¿±äÁ¿ÔÚËù´¦Ä£¿éÔÚ³õ´ÎÔËÐÐʱ½øÐгõʼ»¯¹¤×÷
,
ÇÒÖ»²Ù×÷Ò»´Î
3.
¶ÔÓÚ¾Ö²¿¾²Ì¬±äÁ¿
,
Èç¹û²»¸³³õÖµ
,
±àÒëÆÚ»á×Ô¶¯¸³³õÖµ
0
»ò¿Õ×Ö·û
,
¶ø
auto
ÀàÐ͵ijõÖµÊDz»È·¶¨µÄ
. (
¶ÔÓÚ
C++
ÖеÄ
class
¶ÔÏóÀýÍâ
, class
µÄ¶ÔÏóʵÀýÈç¹û²»³õʼ»¯
,
Ôò»á×Ô¶¯µ÷ÓÃĬÈϹ¹Ô캯Êý
,
²»¹ÜÊÇ·ñÊÇ
static
ÀàÐÍ
)
Ìصã
: static
¾Ö²¿±äÁ¿µÄ”¼ÇÒäÐÔ”ÓëÉú´æÆڵĔȫ¾ÖÐÔ”
Ëùν”¼ÇÒäÐÔ”ÊÇÖ¸ÔÚÁ½´Îº¯Êýµ÷ÓÃʱ
,
ÔÚµÚ¶þ´Îµ÷ÓýøÈëʱ
,
Äܱ£³ÖµÚÒ»´Îµ÷ÓÃÍ˳öʱµÄÖµ
.
ʾÀý³ÌÐòÒ»
#include <iostream>
using namespace std;
void staticLocalVar()
{
static int a = 0; //
ÔËÐÐÆÚʱ³õʼ»¯Ò»´Î
,
Ï´ÎÔÙµ÷ÓÃʱ
,
²»½øÐгõʼ»¯¹¤×÷
cout<<"a="<<a<<endl;
++a;
}
int main()
{
staticLocalVar(); //
µÚÒ»´Îµ÷ÓÃ
,
Êä³ö
a=0
staticLocalVar(); //
µÚ¶þ´Îµ÷ÓÃ
,
¼ÇÒäÁ˵ÚÒ»´ÎÍ˳öʱµÄÖµ
,
Êä³ö
a=1
return 0;
}
Ó¦ÓÃ
:
ÀûÓÔ¼ÇÒäÐÔ”
,
¼Ç¼º¯Êýµ÷ÓõĴÎÊý
(
ʾÀý³ÌÐòÒ»
)
ÀûÓÃÉú´æÆڵĔȫ¾ÖÐÔ”
,
¸ÄÉÆ”
return a pointer / reference to a local object
”µÄÎÊÌâ
. Local object
µÄÎÊÌâÔÚÓÚÍ˳öº¯Êý
,
Éú´æÆÚ¼´½áÊø
,.
À


Ïà¹ØÎĵµ£º

C_ʹÓÃwhileÓï¾äÇóÁ½ÕûÊýµÄ×îС¹«±¶ÊýÓë×î´ó¹«Ô¼Êý

 Ô´Âë:
# include <stdio.h>
 
int main()
{
    int x, y, num1, num2, temp;
    printf("ÇëÊäÈëÁ½¸öÕýÕûÊý£º\n");
    scanf("%d %d", &num1, &num2);
 
    if(num1 < num2)
   ......

C_ÀûÓú¯ÊýµÄÒýÓõ÷ÓÃʵÏÖÁ½ÊýµÄ½»»»

 Ô´Â룺
# include <stdio.h>
 
void swap(int *x, int *y);
 
int main()
{
    int i, j;
 
    i = 12;
    j = 36;
 
    printf("i and j before swapping: %d %d\n", i, j);
 
 &nbs ......

¡¶C³ÌÐòÉè¼ÆÓïÑÔ¡·¶ÁÊé±Ê¼Ç20091106

     ÊéÖÐÓм¸¸öÎÊÌâÓеãÄ£ºý¡£¼Ç¼һÏ¡£
    
Answer to Exercise 1-7
Write a program to print the value of EOF .
 
#include <stdio.h>
 
int main(void)
{
  printf("The value of EOF is %d\n\n", EOF);
 
  return 0 ......

virtualBox ´ó°á¼Ò ´ÓCÅÌÒÆ×ß

 ¼´Ê¹½«VirtualBox°²×°µ½±ðµÄÅÌÉÏ£¬Æä×ö³ÉµÄÐéÄâ»ú£¨ÏµÍ³£¬Ó²ÅÌ£©ÈÔ»áĬÈÏÉú³Éµ½ÏµÍ³ÅÌ£¬Ä¬ÈÏC:ÅÌÉÏ£¬Ëæ×ÅÐé»úÊýÁ¿ºÍÄÚÈÝÔö¼Ó¼·Õ¼Á˱¾À´¾Í²»´óµÄϵͳÅ̿ռ䣬ºÜÊDz»±ã¡£
 ¿ªÊ¼½«C:ÅÌÏÂ.VirtualBoxĿ¼ÏµĶ«Î÷È«ÅÌ¿½±´ÖÁ±ð´¦,È»ºóÔÚVirtualBoxµÄÎļþ/»·¾³ÉèÖà Öн«¡ºÄ¬ÈÏÓ²ÅÌĿ¼¡»ºÍ¡ºÄ¬ÈϼÙÏë»úÆ÷¡»×öÏàÓ¦µÄÐÞ ......

C±êʶ·ûµÄÁ´½Ó£¨ÍⲿÁ´½Ó£¬ÄÚ²¿Á´½ÓºÍÎÞÁ´½Ó£©

 C±êʶ·ûÁ´½ÓÓÐ3ÖÖÐÎʽ£ºÍⲿÁ´½ÓµÄ±êʶ·û£¬ÄÚ²¿Á´½ÓµÄ±êʶ·û£¬ÎÞÁ´½ÓµÄ±êʶ·û
ÍⲿÁ´½ÓµÄ±êʶ·û£º´æ´¢Àà±êʶ·ûʹÓà extern ÐÞÊΣ¬»òÎÞ´ËÀàÐÞÊηûÐÞÊΣ¨ÏµÍ³Ä¬ÈÏΪextern £©  ||¿ÉÔÚÆäËûÔ´´úÂëÎļþÖÐʹÓÃ
ÄÚ²¿Á´½ÓµÄ±êʶ·û£º ʹÓà static ÐÞÊΠ        || Ö»¿ÉÔÚµ±Ç°Ô ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ