| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言 指针综合 -> 正文阅读 |
|
[C++知识库]C语言 指针综合 |
目录 一、什么是指针C语言中指针是一种数据类型,指针是存放数据的内存单元地址。 计算机系统的内存拥有大量的存储单元,每个存储单元的大小为1字节,为了便于管理,必须为每个存储单元编号,该编号就是存储单元的“地址”,每个存储单元拥有一个唯一的地址。 指针变量除了可以存放变量的地址外,还可以存放其他数据的地址,例如可以存放数组和函数的地址。 二、地址和指针的概念🏷?含义:
2.1 变量与地址2.2 指针的定义定义指针变量的一般形式为:数据类型 *指针变量名[=初始地址值]; 功能:定义指向“数据类型符”的变量或数组的指针变量,同时为其赋初值。 📝例如:int *p; 🗯?解释:
2.3 指针变量的初始化一般形式: <类型标识符> *<标识符>=初始地址值; 📝例:输入两个数,并使其从大到小输出。
三、指针与一维数组一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。 所谓数组元素的指针就是数组元素的地址。
📝例:输出数组中的全部元素 假设有一个a数组,整型,有10个元素。要输出各元素的值有三种方法: (1)下标法
(2)通过数组名计算数组元素地址,找出元素的值。
通过指针变量输出a数组的10个元素。
🏷?拓展: 四、指针运算(1)指针变量赋值 将一个变量地址赋给一个指针变量。如: p=&a; //将变量a的地址赋给p p=array; //将数组array首元素地址赋给p p=&array[i]; //将数组array第i个元素的地址赋给p p1=p2; //p1和p2都是指针变量,将p2的值赋给p1 (2)指针变量加(减)一个整数 例如: p++、p--、p+i、p-i、p+=1、p-=i等。
? ? ? ? p1-p2==两指针间元素个数 ? ? ? ? p1+p2 无意义 (3)两个指针变量比较
(4)指针变量可以有空值,即该指针变量不指向任何变量,可以这样表示:p=NULL; 五、字符串与指针字符串的表示形式 (1)用字符数组存放一个字符串,然后输出该字符串。 定义一个字符数组,对它初始化,然后输出该字符串定义一个字符数组,对它初始化,然后输出该字符串。 用字符数组实现: (2)用字符指针指向一个字符串 可以不定义字符数组,而定义一个字符指针。用字符指针指向字符串中的字符。 用字符指针实现: 🏷?用字符数组和字符指针变量实现字符串的存储和运算之间的区别,主要有以下几点: ? 1.?字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第1个字符的地址),决不是将字符串放到字符指针变量中。 ? 2. 赋值方式。 ? ? ?? ? ?3. 对字符指针变量赋初值: ? ? ? ? ? ? 4. 指针变量的值是可以改变的。 六、指针与二维数组(1)二维数组的地址 例如:int a[3][4]; ① 二维数组名a是数组的首地址。 ② 二维数组a包含三个行元素:a[0]、a[1]、a[2] a[0]、a[1]、a[2] 是一维数组名,也是一维数组的首地址。 (2)二维数组元素的地址 a[i][j]的地址可以用以下3种方式表示: &a[i][j]、a[i][j]、*(a+i)+j (3)二维数组元素的表示法 数组元素可用下列形式表示: a[i][j]、*(a[i]+j)、*(*(a+i)+j) (4)指向二维数组元素的指针变量 与指向一维数组元素的指针变量是相同的,用它存放二维数组元素的地址。 七、指针数组
在这个定义中由于“ [ ] ” 比 “ * ” 的优先级高,所以数组名先与 “ [元素个数] ” 结合,形成数组的定义形式,“ * ” 表示数组中每个元素是指针类型, “数组类型标识符” 说明指针的目标变量的数据类型。 例如: int? *p[3]; char? *cp[5]; 📝例题:
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 5:29:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |