C语言指针详解----指针声明定义赋值
C语言的指针是让新手很头疼的事情,但是由于其太过于灵活,以至于可以很好得的解决一些复杂的问题,因此不得不掌握。我最近正在学习指针相关的内容,因此在这里做一个小的总结。本篇是不涉及到函数以及结构体等复杂的使用方法,仅仅讨论一下指针的基本使用方法。
首先我们区分 * 和 & ,这两个运算符, & 我们在scanf函数中经常使用。为了方便理解我们看下面这行代码:
int *p =a;
定义了一个指向a的整型指针,那么有p=&a ; *p =a;
即指针变量的值是地址(&a),*可以理解为取地址 (*p 可以看成 *(&a)取出&a这个地址中的值)。
下面我们看一个复杂点的代码:
int n =0,*p = &n,**q = &p;
这里出现了二级指针,也就是所谓的“指向指针的指针”。 q是指向 int* 型数据的指针变量,首先 p = &n,这行代码很好理解,后面的**q = &p可以拆开来看,首先声明了一个 int* 型数据的指针变量 int **q;再给指针型变量赋值 即(*q) = &p;那么问题来了,对于指针的赋值应该如何理解呢?就以上面这行定义为例有下面四个赋值语句
p = 1; *q = 2;q = p;*p = 5;
我们先看 p = 1;这个赋值语句,根据我们上面所解释的p =&a;我们知道指针变量的值应该是地址,而p = 1;直接将整数赋给了指针变量,编译时会报错
cannot convert from 'const int' to 'int *'
我们再看 *q = 2;根据上面的分析我们知道(*q) = &p;同第一句一样的问题编译时会报错 cannot convert from 'const int' to 'int *'
再来看第三句 q = p; 这句很明显的错了,p是 int* 型数据 而 q是int**型数据,编译时会报错cannot convert from 'int ** ' to 'int *'
我们根据上述 p=&a ; *p =a;可以明显的看到 *p = 5;这是一个正确的赋值语句。
C语言指针详解----指针声明定义赋值相关推荐
- C++指针详解(指针初始化与回收,常量与指针,引用与指针)
C++指针详解 1.指针的定义初始化以及回收 2.常量与指针 1)常量指针(常指针) 2)指针常量 3)总结 3.引用与指针 1.指针的定义初始化以及回收 指针是一个地址,这个地址内存放数据,这些数据 ...
- 【初阶】C语言指针详解——指针必备的7大知识点
文章目录 前言 一.指针是什么
- 筑基九层 —— 指针详解
目录 前言: 指针详解 前言: 1.CSDN由于我的排版不怎么好看,我的有道云笔记比较美观,请移步有道云笔记 2.修炼必备 1)入门必备:VS2019社区版,下载地址:Visual Studio 较旧 ...
- C++Study 指针详解
C++指针详解 指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址.要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区, ...
- C语言结构体中定义函数指针详解
C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...
- C语言指针详解——入门C语言指针,初级指针使用。
原文地址:我的个人博客点击查看 C语言教程第二弹--指针详解 所有学过C语言的人都知道,C语言难在它的指针的使用和理解,今天,我带给大家C语言的指针的教程,供大家学习交流,如果有讲的不对的地方,请给作 ...
- c语言的指针详解ppt,最全的C语言指针详解.ppt
最全的C语言指针详解.ppt 第6章 指针,6.1 指针定义与使用 6.2 指针与函数 6.3 指针与数组 6.4 指针与字符串 6.5 指针数组与多级指针 6.6 指针与动态内存分配 6.7 指针的 ...
- C语言指针详解(全解)—— 前篇
关于指针的基本概念及相关运算写在了上一篇博客 C语言指针详解(初级)_Seinrich的博客-CSDN博客 本篇博客来详细的解说一下指针,深入探讨指针 一.指针与const const修饰的变量为常变 ...
- 带你刷笔试关的小怪|详解指针习题和面试题【C语言/指针/进阶】
文章目录 前言 9. 指针和数组笔试题解析 复习回顾 一维数组 字符数组 二维数组 10. 指针笔试题 笔试题1: 笔试题2 笔试题3 笔试题4 笔试题5 笔试题6 笔试题7 (#)笔试题8 结语 前 ...
最新文章
- 组合模式用于分类设计子叶与枝干时候太好用了
- Android 内容提供器---内容提供器基础(内容的统一资源标识(URIs))
- macrotask和microtask以及EventLoop的介绍
- 开篇:讲讲peopleeditor遇到的问题
- winform教_电脑绝技教你22天学精Csharp之第十五天winform应用程序补充5
- 超强一代JupyterLab发布,可视化调试、中文显示、简单交互界面
- excel公式不自动计算_WPS表格仅显示公式不计算结果怎么办
- axis1 c# 接口 调用_java调用c#的Webservice接口数据报错
- 简述python的优点_Python是什么及Python的优点和缺点
- linux软件装在哪了,linux软件的安装目录在哪
- 威纶触摸屏宏指令编程,字符串相关函数介绍与使用...
- 电梯plc的io分配_用PLC构成液体混合控制系统IO分配及梯形图编程
- 大道至简:数据库的终极未来
- 京东iOS客户端组件管理实践
- 大数据最火的Spark你确定不来了解一下吗?(1)
- 多目标蚁群算法路径规划(四)------多目标约束过程常规流程框架
- ANDROID物联网开发从入门到实战附源码
- 一人之下鸿蒙怎么得,一人之下:老农功是什么?不是炁体源流,不是神明灵,是一个人!...
- 企业信息安全应对勒索软件的攻击难度提升
- 求斐波那契数列的第n项 java