C++ 编程若干知识点
2014-03-31 21:31
260 查看
2014.3.31
默认参数:
1,函数编写时给一个默认参数,调用时有参数则使用传入的参数,无参数则使用默认参数。
2,默认值可以是全局变量、全局常量,甚至是一个函数。但不可以是局部变量。因为默认参数的调用是在编译时确定的,而局部变量位置与默认值在编译时无法确定。
3,默认参数必须放在最右边,默认参数右边必须为默认参数。
4,为了不引起混淆,编译器不允许默认参数与重载函数有交叉情况。如func(int a)和 func(int a, int b = 1)
5,默认参数只可以申明一次,当有函数声明时必须在函数声明内声明,无函数声明时才在函数定义中声明。
2014.4.1
常量指针和指针常量有什么区别:
int a;
int * const p = &a //指针常量,*p可以修改*p = 8;(OK),p不可以修改 p++(ERROR)。
int a,b;
const int *p = &a;//常量指针 *p不可修改 *p = 8;(ERROR),p 可以修改 p = &b (OK)。
还有一种,const int * const p = &a; // *p 和 p均不可改变了。
回答关键要看const修饰的是谁,int const const int的写法是一样的,指针的话看const离谁( 是‘*’ 还是‘指针变量名’)比较近就是修饰谁的,比如,* const 变量名 表示变量名是常量 也就是p不可变 (暗示*p可变,const没有修饰‘*“),const * 表示带*运算对象的是常量,也就是*p 不可变 (暗示p可变,p不带‘*’ )。
C++引用和指针的却别(&和*)
引用访问一个变量是直接访问,而指针是间接访问。
引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间。
引用在开始的时候就绑定到了一个内存空间(开始必须赋初值),所以他只能是这个。
内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值。
例如int i = 3,j = 4;
int &x = i;//成为i的别名
x = j;//不能否认x仍然引用i,并没有成为j的别名,只是修改了x和j共享的内存空间的值.这点与指针不同,指针在任何时刻都可以改变自己的指向
默认参数:
1,函数编写时给一个默认参数,调用时有参数则使用传入的参数,无参数则使用默认参数。
2,默认值可以是全局变量、全局常量,甚至是一个函数。但不可以是局部变量。因为默认参数的调用是在编译时确定的,而局部变量位置与默认值在编译时无法确定。
3,默认参数必须放在最右边,默认参数右边必须为默认参数。
4,为了不引起混淆,编译器不允许默认参数与重载函数有交叉情况。如func(int a)和 func(int a, int b = 1)
5,默认参数只可以申明一次,当有函数声明时必须在函数声明内声明,无函数声明时才在函数定义中声明。
2014.4.1
常量指针和指针常量有什么区别:
int a;
int * const p = &a //指针常量,*p可以修改*p = 8;(OK),p不可以修改 p++(ERROR)。
int a,b;
const int *p = &a;//常量指针 *p不可修改 *p = 8;(ERROR),p 可以修改 p = &b (OK)。
还有一种,const int * const p = &a; // *p 和 p均不可改变了。
回答关键要看const修饰的是谁,int const const int的写法是一样的,指针的话看const离谁( 是‘*’ 还是‘指针变量名’)比较近就是修饰谁的,比如,* const 变量名 表示变量名是常量 也就是p不可变 (暗示*p可变,const没有修饰‘*“),const * 表示带*运算对象的是常量,也就是*p 不可变 (暗示p可变,p不带‘*’ )。
C++引用和指针的却别(&和*)
引用访问一个变量是直接访问,而指针是间接访问。
引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间。
引用在开始的时候就绑定到了一个内存空间(开始必须赋初值),所以他只能是这个。
内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值。
例如int i = 3,j = 4;
int &x = i;//成为i的别名
x = j;//不能否认x仍然引用i,并没有成为j的别名,只是修改了x和j共享的内存空间的值.这点与指针不同,指针在任何时刻都可以改变自己的指向
相关文章推荐
- C++单元测试框架:gtest
- C语言运算符
- C++ 中rand()总结
- Leetcode_best-time-to-buy-and-sell-stock(c++ and python version)
- c++运算符重载
- C++primer plus第六版课后编程题答案7.1
- C语言结构体及其成员地址的互算
- C++primer plus第六版课后编程题答案7.1
- C++小结(二)—数据类型,运算符,优先级
- php传json格式给C++时乱码解决方案
- php传json格式给C++时乱码解决方案
- c++枚举类型
- int a[10]
- C++小结(一)—基本了解
- C++与VB 异同(一)
- 多项式加法(单链表 c语言)
- C++编程 - 回字有四样写法,你知道么?
- C语言内存分配函数malloc、calloc和realloc
- C++细节
- 第一个所谓的c++接口与实现的分离