-
&引用=初始化值 *&引用=指针查看全部
-
有默认参数值的参数必须在参数列表的最右端 void fun(imt i,int j=3,int k=5)//正确 void fun(imt i,int j=3,int k)//错误查看全部
-
指针类型的引用查看全部
-
结构体类型的引用查看全部
-
有默认参数值的参数必须在参数表的最右端查看全部
-
const int x=3; int *y=&x 能通过*y 修改x的值 风险太大 编译报错查看全部
-
指针不能指向常量查看全部
-
const *p *p是常量 *const p p是常量查看全部
-
释放块内存时(数组)需要在delete后加[].查看全部
-
1.函数声明中给默认值,函数定义中不给默认值。 2.无实参则使用默认值,否则实参覆盖默认值。查看全部
-
指针的引用查看全部
-
&符号就是取地址符号, 含义只这么一个; *符号就是创建一个指针, 或者做一次地址跳转; 在任何编程语言中, 其实一个变量都代表了一个内存上的地址. int a = 10, 给a分配一个内存逻辑地址0x1001ff, 这个地址存放了值10; int &b = a, 给b分配和a一样的逻辑地址0x1001ff. 因此b就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; 至此, 我觉得我基本解释清楚了&的作用机理, 它就是取地址; 而*的含义是做一次地址跳转;查看全部
-
虽然在同一个函数内,没有多大意义但是引用变量在函数参数传递时起很大的作用。 而且在传递过程中使用别名只是将地址传过去而不是将数据传入函数,这样的话效率更高查看全部
-
定义结构体 typedef struct student { int num; struct student *next; }student; struct student { int num; struct student *next; }; 这两种定义有什么区别 第二个struct student是定义了一个student结构体,这个明白吧。 第一个是用typedef把struct student这个结构体类型名字重新定义为student,也就是说struct student和student表示同一个事物,都是一个类型的标识符,比如 typedef int zhengshu; 就是你把整型int重命名为zhengshu,下面定义:int i; 和 zhengshu i; 两句就是等价的了查看全部
-
常量和引用的关系: 如果在引用前加入 const,则无法直接修改引用的变量。如: x = 1; const &y = x; y = 2;//错误,该引用为常量,无法直接修改; x = 2;//正确,可以修改被引用变量的值。查看全部
举报
0/150
提交
取消