2.1声明及定义 【例2.1】C++的声明、定义及初试化。 #include <stdio.h> extern int h=0;/C变量定义 extern int i; /1C变量声明 ■ int i; //C变量定义,缺省初始化i=0 int j=i+4; //C++变量定义,初始化ji+4 static int p=jt5;/C++变量定义,初始化为p=jt5
2.1 声明及定义 【例2.1 】C++的声明、定义及初试化。 #include <stdio.h> extern int h=0; //C变量定义 extern int i; //C变量声明 int i; //C变量定义,缺省初始化i=0 int j=i+4; //C++变量定义,初始化j=i+4 static int p=j+5;//C++变量定义,初始化为p=j+5
2.1声明及定义 void main(void){ static int n=j+5; /C+定义,初始化为n=j+5 int i=20; /C定义,初始化为i=20 int k; /C声明,k未初始化值不定 for(int j=i+2;j<9;j++) /1C+定义,初始化为j=i+2 int m=5; /C定义,初始化为m=5 k+=m; /警告,k未初始化就被引用 }; int q=23; /C+在语句中间定义变量 scanf ("%d",&j); /输入main外定义的变量j struct{intk,m;}b={jt3,5};/C+定义,任意表达式初始化 inta[4幻={scanf("%d”",&k),1};/C+定义,任意表达式初始化 }
2.1 声明及定义 void main(void){ static int n=j+5; //C++定义,初始化为n=j+5 int i=20; //C定义,初始化为i=20 int k; //C声明,k未初始化值不定 for(int j=i+2;j<9;j++) //C++定义,初始化为j=i+2 { int m=5; //C定义,初始化为m=5 k+=m; //警告,k未初始化就被引用 }; int q=23; //C++在语句中间定义变量 scanf("%d",&j); //输入main外定义的变量j struct {int k,m;}b={j+3,5};//C++定义,任意表达式初始化 int a[4]={scanf("%d",&k),1};//C++定义,任意表达式初始化 }
,1声明及定义 C允许初试化局部静态数组。C+的局部自动 数组通常在栈段分配空间,若初始化则还会在 数据段分配空间。 程序X.CPP: void main(void)/空间在栈段 int array[10]; 程序Y.CPP: ■ void main(void)/空间在数据段 static int array[10]=(1,2}; 程序Z.CPP: void main(void)/空间在栈段和数据段 int array[10]={1};
2.1 声明及定义 C允许初试化局部静态数组。C++的局部自动 数组通常在栈段分配空间,若初始化则还会在 数据段分配空间。 程序X.CPP: void main(void) //空间在栈段 { int array[10]; } 程序Y.CPP: void main(void) //空间在数据段 { static int array[10]={1, 2};} 程序Z.CPP: void main(void) //空间在栈段和数据段 { int array[10]={1}; }
.1声明及定义 简单类型全局变量:若初始化表达式是任意表 达式,则初始值由编译生成的开工函数在运行 时计算得到。 ▣复杂类型全局变量:即全局对象,其初始化由 开工函数调用其相应的构造函数完成。 ·注意:开工函数先于main执行,收工函数后于 main执行。收工函数负责自动执行全局对象的 析构函数。因此,程序被看作一个对象,有构 造(生),活动(main),析构(死)
2.1 声明及定义 简单类型全局变量:若初始化表达式是任意表 达式,则初始值由编译生成的开工函数在运行 时计算得到。 复杂类型全局变量:即全局对象,其初始化由 开工函数调用其相应的构造函数完成。 注意:开工函数先于main执行,收工函数后于 main执行。收工函数负责自动执行全局对象的 析构函数。因此,程序被看作一个对象,有构 造(生),活动(main),析构(死)
.1声明及定义 #include <iostream.h> long sum(void){ int m,n,S=0; cout<<"Please input:" for (cin>>n,m=1;m<=n;m++) s+=m; cout<<\nSum="<<s; return s; long x=sum();/开工函数初始化x调用sum ■ void main(void){}//空函数有运行结果
2.1 声明及定义 #include <iostream.h> long sum(void){ int m, n, s=0; cout<<"Please input:"; for(cin>>n,m=1; m<=n; m++) s+=m; cout<<"\nSum="<<s; return s; } long x=sum( );//开工函数初始化x调用sum void main(void){ } //空函数有运行结果