C++指针讲解与typedef定义类型

需积分: 12 3 下载量 136 浏览量 更新于2024-07-13 收藏 2.03MB PPT 举报
"C++编程中的typedef关键字用于定义新的类型别名,这有助于代码的可读性和维护性。typedef并不创建新的类型,而是为已存在的类型创建一个不同的名称。例如,可以用typedef定义`float`为`REAL`,之后在代码中就可以使用`REAL`替代`float`。这样做的好处是,如果将来需要更改`float`到其他类型,只需修改一处typedef定义即可。 在C++中,指针是一个重要的概念。它是一个变量,其存储的是另一个变量的地址。内存中的每个字节都有一个唯一的地址,变量就存储在这些地址中。通过直接访问,我们可以按照变量的地址直接读取或修改其值。而通过间接访问,我们可以将变量的地址存储在一个指针变量中,然后通过指针来访问原始变量。 指针变量的定义通常包括类型标识符和星号(*),如`int* i_point;`,这表示`i_point`是一个指向`int`类型数据的指针。未初始化的指针变量的值是不确定的,因此在使用前应为其赋予有效的地址。指针变量可以通过`&`运算符获取变量的地址,如`i_point = &i;`,或者在定义时直接初始化,如`int i; int* i_point = &i;` 指针变量只能指向相同类型的变量,这意味着一个整型指针只能存储整型变量的地址,不能存储其他类型的数据地址。当通过指针访问变量时,使用星号(*)运算符,如`*i_point = 3;`,这表示解引用指针,将3赋值给`i`。 指针变量的引用需要特别注意,它们只能存放地址,不能赋值为非地址数据,如`int *p, i; p = 100;`这样的赋值是错误的,因为100不是一个地址。在实际编程中,应该确保指针变量总是指向合法的内存地址,否则可能导致程序运行错误。 在上述示例代码中,`p1`和`p2`分别被定义为指向整型变量`a`和`b`的指针,然后通过`*p1`和`*p2`来访问并输出`a`和`b`的值。这展示了如何使用指针进行间接访问和修改变量的值。如果尝试将非地址的值赋给指针,如`p1 = 100;`,则会导致程序行为未定义,这是应当避免的编程错误。"