- C++类型转换:
- 1.存在临时变量用来存储变量值,整形和小数分开存储
- 2.表达式执行后也会存在临时变量
- 3.临时变量具有常性,即const
-
int func() { int a = 10; return a;//此处返回看上去是返回a,实际上是返回一个a的临时拷贝,由这个中间拷贝赋值给外层接收的变量 } int main() { int x = func();//调用过程中产生的临时变量带有const性质 return 0; }
再探引用&
- 引用中不存在NULL引用,但有空指针(nullptr)
-
int&a = NULL//-->错误的代码,语法不支持!! int *pa = NULL;//-->语法支持
- 引用的大小
-
int main() { int a = 10; int&p = a; cout<<sizeof(a)<<endl; cout<<sizeof(p)<<endl; return 0; }
- sizeof(p)的大小是4,是引用的主体的字节数大小
- sizeof(int&)大小为4,底层汇编中引用还是指针。
- 引用+1代表被引用的主体数值+1
- 不存在多级引用的说法,只有多级指针的概念
- 内联函数inline
- inline修饰函数-->引用在经常调用的小函数上
-
inline int add(int a,int b) { return a+b; }
- inline 用来替代宏:
- 注意:内联函数没有地址!
- 直接定义在类里面的函数默认为内联函数inline
- 内联函数的缺点:
- 1.inline只是代表对编译器的一种建议,编译器可以不执行-->展开后可执行程序会变大
- 2.inline修饰的函数主体过大,或者是递归,编译器就不会展开函数
- 3.内联不能声明和定义分离!!
- 常见面试题:
- c++有哪些技术替代宏?
- 答:1.常量定义,换用const ,enum.
- 2.inline内联函数
- 关键字
- auto
- 右边初始化自动推导数据类型,包括引用
-
int x = 10; auto&c = x; auto i = 0;
- 其中auto自动推导为整形
- 注意!1.auto不能作为函数参数 2.auto不支持一行连续定义 3.不能用来定义数组!
- 范围for循环
- 使用:
-
int main() { int arr[] = { 1,2,3,4,5 }; for (auto x : arr) { cout << x << " "; } return 0; }
- 要影响数组数据的话,加上&即可
-
int main() { int arr[] = { 1,2,3,4,5 }; for (auto& x : arr) { x += 1; cout << x << " "; } return 0; }
- 注意:
- 1.范围for循环不能倒着遍历!
- 2.不支持指针使用
- NULL和nullptr
- c++尽量使用nullptr,因为NULL的本质是#define NULL 0,很多场景下会造成错误.
C++入门-->浅谈基础的一些关键字和小概念
最新推荐文章于 2025-06-02 13:01:50 发布