`
linleizi
  • 浏览: 230662 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

C++指针学习五

 
阅读更多
C++指针学习笔记五
地址操作符/去引操作符(&)
存储其它变量地址的变量,称之为指针。
使用指针的时候,我们可以通过在指针标识的前面加星号asterisk (*)来存储该指针指向的变量所存储的数值,它可以被翻译为“所指向的数值”("value pointed by")。
“&”被用作一个变量的前缀,可以被翻译为“……的地址“。
”*“表示要取的是表达式所表示的地址指向的内容,可以被翻译为”……指向的数值“。
"例子:
andy = 25;
ted = &andy;
结果是下面的等式全部成立
andy == 25
&andy == 1776
ted == 1776
*ted == 25
"
声明指针变量
"声明指针的格式:
type * pointer_name;
type是指针所指向的数据的类型,而不是指针自己的类型。*仅表示声明的是指针,不要和上面的引用操作混淆。"
"例子:
andy = 25;
ted = &andy;
结果是下面的等式全部成立
andy == 25
&andy == 1776
ted == 1776
*ted == 25
"
"例子:
#include <iostream.h>
int main () {
int value1 = 5, value2 = 15;
int * mypointer;
mypointer = &value1;
*mypointer = 10;
mypointer = &value2;
*mypointer = 20;
cout << ""value1=="" << value1 << ""/value2=="" << value2;
return 0;
}
输出结果:value1==10 / value2==20"
"// more pointers
#include <iostream.h>

int main () {
int value1 = 5, value2 = 15;
int *p1, *p2;
p1 = &value1; // p1 = address of value1
p2 = &value2; // p2 = address of value2
*p1 = 10; // value pointed by p1 = 10
*p2 = *p1; // value pointed by p2 = value pointed by p1
p1 = p2; // p1 = p2 (value of pointer copied)
*p1 = 20; // value pointed by p1 = 20
cout << ""value1=="" << value1 << ""/ value2=="" << value2;
return 0;
}
输出结果:value1==10 / value2==20"
指针和数组
"例子:
#include <iostream.h>
int main () {
int numbers[5];
int * p;
p = numbers;
*p = 10;
p++;
*p = 20;
p = &numbers[2];
*p = 30;
p = numbers + 3;
*p = 40;
*(p + 4) = 50;
for (int n = 0; n < 5; n++)
cout << numbers[n] << "","";
returns 0;
}
输出结果:10, 20, 30, 40, 50,"
指针初始化
"例子:
int number;
int *tommy = &number;"
"例子:
char * terry = ""hello"";
指针terry 指向一个字符串,可以被当作数组一样使用(数组只是一个常量指针)。
terry[4] 与*(terry+4)是一样的"
指针的数学运算
对指针只有加法和减法运算
递增 (++) 和递减 (--) 操作符比引用操作符reference operator (*)有更高的优先级
指针的指针
"C++ 允许使用指向指针的指针。要做到这一点,我们只需要在每一层引用之前加星号(*)
例如:
char a;
char * b;
char ** c;
a = 'z';
b = &a;
c = &b;"
"空指针
指针void 是一种特殊类型的指针。void 指针可以指向任意类型的数据,可以是整数,浮点数甚至字符串。唯一个限制是被指向的数值不可以被直接引用(不可以对它们使用引用星号*),因为它的长度是不定的,因此,必须使用类型转换操作或赋值操作来把void 指针指向一个具体的数据类型。"
"例子:
#include <iostream.h>
void increase (void * data, int type) {
switch (type) {
case sizeof(char) : (*((char*)data))++; break;
case sizeof(short) : (*((short*)data))++; break;
case sizeof(long) : (*long((long*)data))++; break;
}
}

int main () {
char a = 5;
short b = 9;
long c = 12;
increase (&a, sizeof(a));
increase (&b, sizeof(b));
increase (&c, sizeof(c));
cout << (int) a << "","" << b << "","" << c;
return 0;
}
输出结果:6, 10, 13"
函数指针
C++ 允许对指向函数的指针进行操作。它最大的作用是把一个函数作为参数传递给另外一个函数。
"例子:
#include <iostream.h>
int addition (int a, int b) {
return (a + b);
}
int subtraction (int a, int b) {
return (a + b);
}
int (*minus) (int , int) = subtraction;
int opertion (int x, int y, int (*functioncall)(int, int) {
int g;
g = (*functioncall) (x, y);
return (g);
}
int main () {
int m, n;
m = opertion (7, 5, addition);
n = opertion (20, m, minus);
cout << n;
return 0;
}
输出结果:8"
分享到:
评论

相关推荐

    C++指针精髓 笔记

    本笔记将深入探讨C++指针的精髓,包括其基本概念、使用方法以及高级应用。 首先,我们要理解指针的基本原理。在C++中,指针是一个变量,它存储的是另一个变量的内存地址。当我们声明一个指针变量时,例如`int *p;`...

    C++指针资料 集合!!

    这份"**C++指针资料集合**"显然是一个宝贵的资源,包含了关于C++指针的多种学习材料,旨在帮助程序员深入理解和熟练运用指针。 C++中的指针本质上是一个变量,它存储的是另一个变量的内存地址。理解指针的三大关键...

    C/C++指针学习 指针经验学习

    本资料集“C/C++指针学习 指针经验学习”旨在帮助读者深入理解和掌握这一核心技能。 首先,我们要明白指针的基本概念。在C/C++中,指针是一个变量,它存储的是另一个变量的地址,即内存中的位置。通过指针,我们...

    C++指针学习建议.txt

    C++指针学习建议.txt

    c++关于指针的学习资料

    C++中的指针是编程语言的关键特性之一,它允许直接操控内存,提供了高效的数据操作和复杂的程序...通过学习指针的定义、规则、运算以及与引用的关系,开发者能够更好地利用C++的强大功能,编写出更高效、更安全的代码。

    C++指针用ppt详解

    本文将通过PPT的形式详细解析C++指针的使用。 首先,指针是C++中的一种特殊变量,它存储的是另一个变量的内存地址。这个地址是一个整数形式的常量,代表了内存中的一个位置。例如,如果有一个整型变量`i`,其地址...

    c++指针方面的心得

    根据提供的文件信息,标题与描述均为“C++指针方面的心得”,这表明文章将主要围绕C++语言中的指针概念及其使用技巧进行探讨。由于标签部分与内容并不相关,因此我们将忽略这部分信息,直接从标题和描述中提取并展开...

    c++学习笔记(c++ 线程 指针 调试 编码)

    本学习笔记主要涵盖了C++中的几个关键主题:线程、指针、调试以及编码实践。 首先,关于C++的线程:在多核处理器的时代,线程成为了实现并行处理和提高程序性能的重要手段。C++11引入了标准库中的`&lt;thread&gt;`,使得...

    C/C++指针难点详解

    C/C++指针详解、学习建议,包含PPT和WORD共三份文档。

    c++指针面试题经典

    "C++指针面试题经典"这个资源,很可能是针对C++开发者,特别是初级到中级水平的程序员设计的面试题集合,旨在测试和提升他们在指针方面的理解与应用能力。金山公司的面试题历来以深度和实用性著称,这些题目和解答...

    C++指针学习C++指针学习

    C++指针C++指针C++指针C++指针C++指针C++指针C++指针C++指针C++指针C++指针C++指针

    C++指针详细解析——史上最精彩指针文章

    标题和描述均提到了"C++指针详细解析",这表明文章主要聚焦于C++语言中的指针概念及其应用。以下是对标题、描述...因此,学习C++指针时,应注重实践,通过编写代码来加深理解,并确保始终检查指针的有效性和安全性。

    c++指针学习PPT

    在C++编程语言中,指针是一个至关重要的概念,它允许程序员直接操作内存地址,从而实现高效的数据操作和复杂的程序设计。...通过学习这个PPT,你应该能够更好地理解和应用指针,从而编写更高效、更灵活的C++代码。

    C++指针学习资料

    C++指针总结,包括指针变量、数组指针、指针数组、指针型函数、文件指针的说明,此外还有内存管理函数的介绍

    C/C++指针的用法总结实例工程

    在这个名为"C/C++指针的用法总结实例工程"的项目中,我们将深入探讨五种关键的指针相关概念,包括双重指针、引用、指针函数、指针数组以及数组指针,并通过实际的例子来帮助理解这些概念。 首先,让我们看看双重...

    C++指针详解

    在C++编程语言中,指针是一个至关重要的概念,它为程序员提供了对内存直接操作的能力,使得代码可以更加高效和灵活。本文将深入探讨C++指针的各个方面,包括其定义、...学习并熟练运用C++指针是成为C++高手的必经之路。

    C++指针应用教学:让你不再害怕指针

    ### C++指针应用教学:让你不再害怕指针 #### 前言:复杂类型说明 在编程领域,特别是对于C++这样的强类型语言而言,理解指针的概念及其使用方式至关重要。指针作为C++中一种特殊的变量类型,能够直接操作内存地址...

    C++指针的使用资料打包

    C++指针允许我们存储变量的地址,进而可以访问和修改这些变量,或者实现高级的数据结构和算法。本资料打包包含的是关于C++指针的详细讲解,特别是涉及到灵巧指针的创建,这是C++中一种更安全、更灵活的指针管理方式...

    C C++ 指针 面试题 笔试题

    总的来说,这个资料包提供了全面的C/C++指针相关的面试和笔试题目,覆盖了从基础到高级的各种场景,是学习和复习指针知识的理想资源。通过深入学习和实践,不仅可以增强编程能力,也有助于在IT行业的竞争中占据优势...

    c_c++指针经验总结

    在C和C++编程语言中,指针是一个至关重要的概念,它允许我们直接操作内存地址,从而实现...通过不断实践和学习,你可以掌握指针的精髓,编写出更高效、更健壮的代码。希望这份经验总结能对你的编程之路提供有力的帮助。

Global site tag (gtag.js) - Google Analytics