问题
1、#define TBL_SIZE(a) ( (sizeof(a)) / (sizeof(a[0])) )
static int arr[]= {1,5,4,3,2,6};
#define TBL_SIZE(a) ( (sizeof(a)) / (sizeof(a[0])) )
int main()
{
ilen = TBL_SIZE(arr);
return 0;
}
理解:
从上面代码可以开出,#define TBL_SIZE(a) ( (sizeof(a)) / (sizeof(a[0])) )这句相当于定义了一个宏,然后宏的参数是a,其具体执行的功能为计算数组大小。
2、int a = int(); 这个int()是什么用法呢?
int()直接調用的構造函數,所以構造函數返回什麽就是什麽。
int a = int();
cout<<a<<endl;
对于一个类型来说,类型名本身是该类型的构造函数
比如有一个类
class A {
...
};
那么A(),就是A类型的构造函数,使用A()可以得到一个A类型的变量。
int是内置类型,所以int()是调用int类型的构造函数,返回一个int变量。