`
61party
  • 浏览: 1118512 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

数组-指针-引用

阅读更多
一、指针的概念

指针是内存中的地址。

1、语法:类型 * 变量名
这里的类型是定义了这个指针指向的变量类型。

2、指针的运算符(*和&)
&取地址符
例如:
int counta=100;
int * mm;
mm=&counta;
假设counta所在地址是2000,这是候m=2000。
#include <iostream.h><br> void main()<br> {<br> int counta=100;<br> int * mm;<br> mm=&amp;counta;<br> cout }<br>*返回这个地址的值,与&amp;正好相反。<br> #include <iostream.h><br> void main()<br> {<br> int p,counta=100;<br> int * mm;<br> mm=&amp;counta;<br> p=* mm;<br> cout }<br> 3、指针的赋值<br><br> #include <iostream.h><br> void main()<br> {<br> int x;<br> int * p1,* p2;<br> p1=&amp;x;<br> p2=p1;<br> cout }<br><br> 结果:0x0012FF7C<br> 4、指针的运算<br> 指针的++与--是将指针的地址移动所属变量类型位数。<br><br> char 8<br> int 16<br> long 32<br> float 32<br> double 64<br> 5、指针与数组<br><br> 数组声明:类型 变量名[长度]<br><br> 没有下标的“一维”数组名就是一个指向该数组第一个元素的指针。<br><br> #include <iostream.h><br> void main()<br> {<br> int x[3]={1,2,3};<br> int * p1;<br> p1=x;<br> cout }<br> a、等价关系:<br><br> 如:char c[10];<br> c 和 &amp;c[0] 是等价的。<br><br> 再如:char c[2][3];<br> c 和 &amp;c[0][0] 是等价的。<br> *(c+12) 和 &amp;c[1][2] 是等价的。<br><br> b、数组与指针的关系<br><br> 1&gt;一维数组的指针<br><br> #include <iostream.h><br> void main()<br> {<br> int x[2]={1,2};<br> int * p1;<br> p1=x;<br> cout cout }<br><br> 2&gt;二维数组的指针<br><br> #include <iostream.h><br> void main()<br> {<br> int<br> x[2][3]={1,2,3,4,5,6};<br> //int x[2]={1,2};<br> int * p1;<br> p1=&amp;x[0][0]; //二维数组给指针不能用"p1=x"这个来赋值,只能是“p1=x[2]”<br> cout cout cout cout cout cout cout cout cout cout cout cout //规律:* (p1+((1*3)+2))<br> }<br><br> 思考:指针是地址,那么如果想得到某地址的变量用什么方法。<br><br> 二、将引用和指针相比较<br><br> 引用是变量的别名。<br><br> #include <iostream.h><br> void main()<br> {<br> int * p1,a=100;<br> int &amp; y1=a; //必须直接赋值<br> p1=&amp;a;<br> y1=a;<br> cout cout }<br><br> 指针和引用可以达到同样的效果。<br><br> #include <iostream.h><br> void main()<br> {<br> void funca(int &amp; vala);<br> void funcp(int * valp);<br> int a=100,b=100;<br> int &amp; y1=a; //必须直接赋值,而且只能赋值一次<br> funca(a);<br> funcp(&amp;b);<br> cout cout }<br> void funca(int &amp; vala)<br> {<br> vala=200;<br> }<br> void funcp(int * valp)<br> {<br> * valp=500;<br> }<br><br> 三、*和&amp;的用途,避免这些符号在使用上发生混淆<br><br> 1、*的作用:<br><br> 1&gt;乘号<br> 2&gt;指针定义符号<br> 3&gt;返回某个地址的值<br><br> 2、&amp;的作用:<br><br> 1&gt;位运算中的“与”<br> 2&gt;取地址符<br> 3&gt;引用<br></iostream.h></iostream.h></iostream.h></iostream.h></iostream.h></iostream.h></iostream.h></iostream.h>
分享到:
评论

相关推荐

    数组的指针和指向数组的指针变量

    通过指针引用数组元素时,需要注意以下几点: * pointer+i 和 array+i 都是数组元素 array[i] 的地址。 * *(pointer+i) 和 *(array+i) 就是数组元素 array[i]。 * 指向数组的指针变量,也可以看作是数组名,因而...

    c语言指针数组-·详解数组指针与指针数组

    在C语言中,指针和数组是两种非常重要的数据结构,它们可以组合成“指针数组”或“数组指针”,这为处理复杂的数据结构提供了灵活性。本文将深入讲解这两种概念。 一、数组指针与指针数组的区别 1. 数组指针:数组...

    (完整word版)c语言(函数-数组-指针)练习题.doc

    "C语言函数、数组、指针练习题" 1. 选择题1:C程序的执行是从main函数开始执行的。因此,正确答案是A。 2. 选择题2:使指针p1指向变量a,需要使用语句*p1=&a;。因此,正确答案是A。 3. 选择题3:一维数组初始化...

    数组与指针的艺术.doc

    此外,还会讨论一些常见的陷阱和误区,如指针运算、指针解引用、数组越界等问题,以避免编程时出现错误。 在学习过程中,读者可能会遇到各种困惑,作者鼓励读者通过讨论和实践来深化理解。文中推荐了《C与指针》这...

    结构体变量引用-数组-指针

    #include using namespace std; //自定义结构体类型 struct date { int month; //结构体变量名定义 int day; int year; }; struct teacher { int num; char name[20]; struct date birthday;......

    第9章 指针和数组-3指针和一维数组之间的关系1

    本章节主要讨论的是C语言中指针与一维数组之间的紧密关系。在C语言中,数组名实际上是一个指向数组首元素的常量指针。因此,指针和一维数组之间有着天然的联系。 1. **一维数组元素的引用** 数组名`a`代表了数组的...

    数组和指针练习题目(精选)

    因为 `++P` 将指针 `P` 移动到数组 `a` 的第三个元素 `30`,然后 `*` 将其解引用得到 `30`。 [8.7] 表达式 `++*P` 的值是 `21`。因为 `*P` 将指针 `P` 解引用得到 `20`,然后 `++` 将其递增得到 `21`。 [8.8] 程序...

    C++之数组与指针的异同 pdf

    5. **语法糖**:在很多情况下,C++允许将数组名和指针进行相似的操作,例如解引用和递增操作,但这仅仅是语法上的便利,并不代表它们是相同的。 ### 示例代码解析 在提供的示例代码中,作者通过几个简单的例子展示...

    数组与指针的艺术 pdf

    ### 数组与指针的艺术 #### 一、前言与背景 本文档是对2005年发表的《再再论指针》一文的修订版本。与原版相比,新版文档进行了多方面的改进和扩展: 1. **引用C/C++标准**:作者通过引用C/C++标准的条款来阐述...

    计算机等级考试复习指导:计算机二级C++数组、指针与引用篇.pdf

    【计算机等级考试复习指导:计算机二级C++数组、指针与引用篇】 在计算机二级C++考试中,数组、指针和引用是重要的基础知识。数组是存储同类型数据的集合,分为一维数组、二维数组以及多维数组。 1. 一维数组 - ...

    C++数组与指针深入剖析

    ### C++数组与指针深入剖析 #### 一、引言 C++作为一种广泛使用的编程语言,其强大的功能和灵活性很大程度上得益于数组和指针的支持。数组和指针是C++编程的基础,也是理解更复杂数据结构的关键。本文将深入探讨...

    C++第4章_数组与指针(C++课件,中南大学)

    在C++编程语言中,数组和指针是两个非常重要的概念,它们在处理大量数据时发挥着关键作用。数组提供了一种方式来存储同一类型的多个数据项,而指针则是指向这些数据项的地址,使得我们可以高效地访问和操作数组。 ...

    07-Java基础(数组-常见问题)

    - null指针异常:未初始化数组前直接访问会抛出NullPointerException。 - 遍历过程中修改数组:可能导致意外的结果,需谨慎处理。 9. **数组的内存分配** 数组在Java中是对象,存储在堆内存中。数组元素如果是...

    数组和指针的区别(通俗易懂)

    例如,如果指针引用的是整型变量,则该指针就是整型指针;如果引用的是字符型数组,则是字符型指针。 #### 三、数组的概念与特性 **数组**是一种特殊的对象类型,用于存储相同类型的元素集合。数组类型由元素类型...

    数组和指针学习资料

    在编程世界中,数组和指针是C/C++等低级语言的核心概念,它们的理解与熟练运用对于程序设计至关重要。本学习资料集包含了对数组和指针的深度解析,旨在帮助学习者彻底掌握这两个概念。 首先,我们来深入探讨数组。...

    C语言数组与指针代码精选

    在C语言中,数组和指针是编程的基础概念,它们紧密相连,经常一起使用。本章节将深入探讨这两个核心主题,结合"常东超、吕宝志、郭来德"编著的《C语言程序设计》第六章中的例题,我们将深入理解它们的工作原理和应用...

    数组和指针的区别

    - **指针**:通过解引用操作访问所指向的数据。 ### 实际应用中的注意事项 虽然数组和指针有相似之处,但在实际编程中需要注意以下几点: - **类型安全**:在使用指针时应确保指针的类型与所指向的数据类型一致,...

    数组与指针详解

    3. 指针运算:可以使用 `*` 运算符对指针进行解引用,获取它所指向的值,如 `cout *ptr;`。也可以使用 `++` 或 `--` 对指针进行递增或递减操作,改变它所指向的地址。 4. 动态内存分配:通过 `malloc` 或 `calloc` ...

    c语言程序设计王勇第9章数组-建工化学.ppt

    本章主要涵盖了数组的概念、维数、定义、初始化、元素引用以及数组与指针的关系。 一、数组的概念 数组是由一组相同类型的数据构成的序列,这些数据被称为元素。每个元素可以通过一个统一的名字标识,并通过下标来...

    二维数组与指针关系剖析

    因此,对于二维数组,我们可以获得其首元素的一维数组指针,这是一维数组指针的指针,也称为二级指针。 二维数组的声明通常如下所示: ```cpp int arr[3][4]; ``` 这个声明创建了一个3行4列的二维数组。数组`arr`...

Global site tag (gtag.js) - Google Analytics