-
const在*之后为错位写法
查看全部 -
1.有默认参数值的参数必须在参数表的最右端
2.申明时可以加默认值,定义时不加默认值
3.无实参则用默认值,否则用实参
函数重载:
在相同作用域内a.同一函数名定义的多个函数;b.参数个数或者参数类型不同
内联函数:inline
1.编译时将函数体代码和实参代替函数调用语句
2.内联编译是建议性的,由编译器决定
3.逻辑简单,调用频繁的函数建议用内联
4.递归函数无法使用内联
查看全部 -
int *p=new int[10];
if(p==NULL)
{
//申请失败
}
delete []p;
p=NULL;
查看全部 -
int a =3 ;
const int *q =&a;
这里的话*q是为const,不能动
const int a = 3;
int *q=&a; //这样定义是错的,因为a是常量了,你这里*q还都是变量,q也是变量,完全不对。
查看全部 -
int x = 3;
const int *y = &x;
这里y就是x的地址,*y就等于3
查看全部 -
int x =3;
const int &y = x;
这里const修饰的是y,也就是x的别名,y不能赋值,但是x可以赋值。
查看全部 -
const int *p 这里的const修饰的是*p,所以*p不能变了
int *const p 这里的const修饰的的p,所以p不能变了
const int *const p 那么这里*p和p都不能变。
查看全部 -
指针引用别名
int a =10;
int *p = &a;
int *&q = p; // q为p的别名
那么*q=*p=a
查看全部 -
内存的申请内存 new
内存的释放内存 delete
方法:
申请内存 int *p = new int;
释放内存 delete p;
申请内存需要判断是否成功,释放内存需要设空指针,不设置为空,会使得同一块内存重复回收。
new 和 delete 配套使用
查看全部 -
1.函数参数默认值 (实参覆盖默认值)
void fun(int i,int j=5,int k=10);
有默认参数值的参数必须在参数表的最右端。
声明时可带默认值,定义时不用。
无实参则用默认值,否则实参覆盖默认值。
2.函数重载 (名称相同且参数可辨)
在相同作用域内,用同一函数名定义的多个函数,参数个数和参数类型不同的称为函数重载。
3.内联函数、关键字:inline、(效率高、有条件:逻辑简单,不能是递归函数)
编译时将函数体代码和实参代替函数调用语句。
递归函数无法使用内联方式。
查看全部 -
int *&q = p; //&引用符号
查看全部 -
指针别名的使用
int a = 3;
int *p = &a; //指针P指向a的地址;
int *&q = p; //指针p的别名 q
函数参数使用引用的情况
void fun(int &a,int &b) //交换AB的值
{
int c = 0;
a = b;
b = c;
}
查看全部 -
参数默认值一定在最右端。
查看全部 -
指针指向const修饰的变量时,应该是const int const *p = &a;
查看全部 -
const int x = 3;
x的存储地址是&x,x的值是3不可改变。
int x = 3; const int *p = &x;
x的存储地址是&x,x的值是3可以改变。
p的存储地址是&p,p的值是&x可以改变。
*p指代x的值,*p是不能更改值的,可以通过x=4更改值,不可通过*p=4更改值。
int x = 3; int *const p = &x;
x的存储地址是&x,x的值是3可以改变。
p的存储地址是&p,p的值是&x不可改变。
*p指代x的值,*p=4可以更改值,x的值也将更改为4。
int x = 3; const int *const p = &x;
x的存储地址是&x,不给x定义const的情况下,x的值3仍然是可以改变的。
p的存储地址是&p,p的值是&x不可改变。
*p指代x的值,*p是不能更改值的。
int x = 3; const int &y = x;
x的存储地址是&x,x的值是3可以改变。
y的存储地址是&x,y的值是3不可改变。
查看全部
举报