C++指针基础入门:理解引用与赋值

需积分: 34 0 下载量 192 浏览量 更新于2024-07-14 收藏 8.56MB PPT 举报
指针变量在C++编程中扮演着至关重要的角色,它们是存储内存地址的特殊类型。在C++中,理解指针的基本概念对于高级编程技巧至关重要。首先,我们要明确,指针变量本身并不存储数据,而是存储另一个变量的内存地址。例如,在提供的代码示例中: ```cpp int *p, i; // 定义两个指针变量p和整型变量i p = 100; // 尝试将一个数值赋给指针,这是错误的,因为指针只能存放地址 p = &i; // 正确方式,将变量i的地址赋给p void main() { int a = 10, b = 100; // 定义两个整型变量a和b int *p1 = &a, *p2 = &b; // 使用&运算符获取变量的地址并赋给指针 cout << a << '\t' << b << endl; // 输出原始变量的值 cout << *p1 << '\t' << *p2 << endl; // 输出指针所指向的变量值,即a和b // 这里的输出将是: // 10 100 // 10 100 // 分别表示a和b的值,而*p1和*p2则是它们对应的地址的值 } ``` 在上述代码中,`*p1`和`*p2`是对`a`和`b`变量的间接访问,通过解引用操作符(*),我们实际上是访问这些变量在内存中的存储位置,而不是它们的值本身。 关于指针的非法赋值,如尝试将非地址数据赋给指针(如`p = 100`),在C++中是不允许的,因为指针是用来处理内存地址的,而非具体的数据值。正确的做法是确保指针始终指向内存中的正确位置。 C++语言的发展起源于BCPL和B语言,特别是Dennis Ritchie和Brian Kernighan在C语言上的创新,使其在编写系统软件如UNIX操作系统时展现出强大的适应性和灵活性。C++是C语言的扩展,它保留了C语言的优点,如结构化编程、高效的执行效率和良好的可移植性,同时引入了面向对象特性,使得程序设计更加直观和强大。 然而,C++语言的学习曲线较陡峭,尤其是对于初学者,语法结构的灵活性可能导致调试难度增大。理解指针概念,比如区别于普通变量的地址概念,以及如何正确地声明、初始化和使用指针,是学习C++的重要部分。只有掌握了基本的指针知识,才能更好地利用C++进行高级编程,包括内存管理、动态内存分配和数据结构等高级主题。