int main(void)
{
int numarr[3] = {3, 8, 6};
cout<<getmax(numarr,3) <<endl;
cout<<getmax(numarr[1],numarr[2])<<endl; //应该把0换成1才是对的
system("pause");
return 0;
}
{
int numarr[3] = {3, 8, 6};
cout<<getmax(numarr,3) <<endl;
cout<<getmax(numarr[1],numarr[2])<<endl; //应该把0换成1才是对的
system("pause");
return 0;
}
不能将一个限制多权限小的数据(常量)定义出一个限制比它少权限比它大的使用方式(变量的指针或引用)。这样就可能会使新定义的使用方式做超越原本数据限制的行为(赋值)。计算机就会报错。
2017-07-22
其实引用是绑定一个变量或常量,且一旦绑定不可改变所以在用引用时必须对其初始化,且非常量引用不可直接绑定字面值即一个数,只能通过变量进行绑定
2017-07-17
可以把别名理解为一种远程导弹,而变量就是近距离武器,别名的好处就是传递给函数的时候可以远程打到原来的地址的值,而变量因为发生了复制,打不到了
2017-07-17
内联函数, 在函数签名之前要加上inline, 这样函数代码块会替换掉调用出的那行函数名, 这样减少了函数调用栈push和pop stack的开销.
为啥不什么地方都用inline呢? 首先, inline是建议性的, 由编译器决定具体是否替换代码(递归是坚决不会进行替换的); 其次, 内联函数只适合逻辑简单, 且调用频繁(不停的call这个函数), 如果内联函数中有for, while循环的话, 往往效果不好, 不如单独给其一个函数栈来使用. 最后, 递归函数是无法使用内联方式的.
为啥不什么地方都用inline呢? 首先, inline是建议性的, 由编译器决定具体是否替换代码(递归是坚决不会进行替换的); 其次, 内联函数只适合逻辑简单, 且调用频繁(不停的call这个函数), 如果内联函数中有for, while循环的话, 往往效果不好, 不如单独给其一个函数栈来使用. 最后, 递归函数是无法使用内联方式的.
2017-07-17