c++初级-1-指针

指针

一、指针的定义和使用

	//定义指针
	int a = 10;
	int* p = &a;
	cout << *p << endl;
	cout << a << endl;
	//使用指针
	*p = 100;
	cout << *p << endl;
	cout << a << endl;

/***
输出结果为:
10
10
100
100
**/

二、指针所占内存空间

操作系统位数所占字节数
32位4 字节
64位8字节

三、空指针和野指针

空指针

  1. 用来给指针初始化。
  2. 空指针不可以进行访问
	//空指针
	int* p = nullptr;

野指针
地址是自己定义的,自己定义的空间,系统不一定把这块空间分配给程序。

	//野指针
	int* p1 = (int*)0x1109;

四、const 修饰指针

1.常量指针

int a = 10;
const int* p = &a;

特点:

  • 指针的指向可以修改。
  • 指针指向的值不可以修改。

2.指针常量

int a = 10;
int* const p = &a;
  • 指针的指向不可以修改。
  • 指针指向的值可以修改。
int a = 10;
const int* const p = &a
  • 指针的指向不可以修改。
  • 指针指向的值不可以修改。

五、指针与数组

	int arr[] = { 1,2,3,4,5,6,7,8 };
	int* p = arr;
	for (int i = 0; i < 8; i++)
	{
		cout << *p << " ";
		p++;
	}
/***
输出结果:
1 2 3 4 5 6 7 8
**/

数组名代表数组的首地址。

六、指针与函数

#include<iostream>

using namespace std;

void m_swap(int* a, int* b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

int main()
{
	int a = 10;
	int b = 20;

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	m_swap(&a,&b);

	cout << "交换后" << endl;

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	return 0;
}

/**
a = 10
b = 20

交换后

a = 20
b = 10

**/
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++初级工程师面试通常会考察基础理论知识、语言运用能力以及对常见问题的解决方法。以下是一些常见的面试问题: 1. **基础概念**: - C++的核心特性有哪些(如封装、继承和多态)? - 指针和引用的区别是什么? 2. **语法与数据类型**: - 什么是静态变量和局部变量?它们的生命周期是怎样的? - 常量与常量指针有何不同? 3. **内存管理**: - C++中的内存分配方式有哪些?比如栈内存和堆内存? - 什么是构造函数和析构函数? 4. **控制结构**: - 何为条件语句(if-else, switch)、循环语句(for, while)及其使用场景? - 异常处理机制(try-catch)的基本用法是什么? 5. **STL(标准模板库)**: - 描述一下vector、list、set和map的主要区别。 - 队列和栈在哪些情况下使用? 6. **面向对象编程**: - 如何实现单例模式?为什么它不推荐在现代C++中使用? - C++中的纯虚函数和抽象类有什么作用? 7. **模板和泛型编程**: - C++中的模板是什么?模板元编程是什么? - 举例说明如何使用模板进行类型安全的操作? 8. **错误处理和调试**: - 遇到运行时错误(如 segmentation fault)时,你会如何定位问题? - 如何使用gdb或其他调试工具? **相关问题**: 1. 你能解释一下C++中的运算符重载吗? 2. 当你在代码中遇到性能瓶颈,你会如何优化? 3. 什么是RAII(Resource Acquisition Is Initialization)?它在C++中的作用是什么? 如果你有具体的面试题目或者需要深入了解某一方面,随时告诉我,我会帮助你解析和提供答案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值