-
无实参则使用默认值,否则实参覆盖默认值 例如下面的代码 void fun(int i,int j=8,int k=80) int main() { fun(20);//i=20,j==8,k=80(j,k,保持默认) fun(20,30);//i=20,j=30,k=80(k保持默认) fun(20,30,40); return 0; }查看全部
-
声明时函数参数可以给予默认值void fun(int i,int j=5,int k=10); 在使用时函数参数里便不能放默认值 void fun(int i,int j,int k) { cout<<i<<j<<k<<endl; }查看全部
-
有默认参数值的参数必须在参数表的最右端 正确void fun(int i,int j=8,int k=80) 错误:void fun(int i,int j=9,int k)查看全部
-
内联函数 inline查看全部
-
有默认参数值的参数必须在参数表的最右端查看全部
-
* 号取值 ,& 号取址查看全部
-
const int a=3; int*p=&a; 以上两句代码是错的。a是一个不变的量,p指针可以的指向可以变,所以用P(权限大的)指向一个权限小的肯定是错的查看全部
-
int const *p=&x等价于constint *p=&x;查看全部
-
#include“stdlib.h” #include"iostream" using namespace std; int main(void) {int x=3; int y=5; int const&z=x//z不能变了。因为int &z=x;z是可变的 system("pause"); return 0; }查看全部
-
#include“stdlib.h” #include"iostream" using namespace std; int main(void) { const int x=3;//#define x 3 int y=3; int const*p=&y;//const int *p=&y; int z=9; int *const q=&z; *q=10; system("pause"); return 0; }查看全部
-
int x=3; const int &y=x; x=10;//正确 y=20;//错误,y虽然是作为x的别名,但是,y前面已经用const加以修饰了,意思是y是不可变的。查看全部
-
&符号就是取地址符号, 含义只这么一个; *符号就是创建一个指针, 或者做一次地址跳转;指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元 在任何编程语言中, 其实一个变量都代表了一个内存上的地址. int a = 10, 给a分配一个内存逻辑地址0x1001ff, 这个地址存放了值10; int &b = a, 给b分配和a一样的逻辑地址0x1001ff. 因此b就a的别名; int* p=&a, 上面定义了一个整形变量a和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。 好了, 最难的来了. int a = 10; // 给a分配一个内存逻辑地址0x100001, 这个地址存放了值10; int *p = &a; //创建变量p, 给p分配地址0x100002, 这个地址存放的值是"0x100001"(a的逻辑地址值); int *&q = p; //创建变量q, 给q分配地址也是0x100002, 因此这个地址存放的值还是a的逻辑地址值; *q = 20; //访问存放在q变量地址下的值, 获得了a的地址值, 再访问一下a的地址值, 修改上面的内容为20; 至此, 我觉得我基本解释清楚了&的作用机理, 它就是取地址; 而*的含义是做一次地址跳转;查看全部
-
引用:起别名(当对别名操作时,原数据也会改变。当对原数据操作时,别名也会改变) 单个数据引用:int a;int&b=a; 指针引用:int*p;int*&q=p;查看全部
-
内联函数不能是递归函数,不是所有的函数都能内联查看全部
-
#pragma warning(disable:n) 将第n个警报置为失效查看全部
举报
0/150
提交
取消