- 前置自增能用作左值表达式,后置自增只能用于右值表达式。
函数形参地址都是连着的。
#include<iostream> using namespace std; void fun(int a, int b, int c) { int* p = &a + 1; cout << *p << endl; //输出2 } int main() { fun(1, 2, 3); system("pause"); return 0; }
在全局作用域声明的 const 变量是定义该对象文件的局部变量。
const 和引用成员函数必须在构造函数的初始化列表中进行初始化。
class C { public: C(int _a, int _b, int _c) :b(_b), c(_c) //b和c必须列表初始化 { a = _a; } private: int a; const int b; int& c; };
typedef char* String_t;
和#define String_d char*
的区别:前者声明一个类型的别名,在编译时处理,有类型检查;后者是一个简单的替换,在预编译时处理,无类型检查。在Sting_t a,b;
中,a和b都是char*类型,但Sting_d a,b;
中,只有a是char*类型,b是char类型的。
C++中容易忽略的小细节
最新推荐文章于 2023-08-29 00:15:00 发布