C语言中的指针的新认识(一)

2023-10-31

从开始学习C语言到现在遇到最难的问题始终是指针的问题,所以希望每次都有新的体会,然后再记录下来,能看到自己的成长

最近知道的一个新的体会:指针指向的是一个地址,所以指针所要给的值也是一个地址
所以有了这样一个值:int a = 0;
                                    int *p =&a;//注意这里给指针的就是一个地址,将a的地址给了指针p,所以指针p就指向了a的地址

自己的盲区:
 int *p;
 注意在内存中:一个变量就拥有地址,内存中会为变量分配地址
 p: 表示的是一个指针变量的名字,从此这个指针的名字就叫做p
 &p:表示的是p的地址,也就是指针p所指向的地址
 *p: 表示的是指针里面所存放的内容

以下两种表示都是可行的,在vs中编译通过:

  //第一种
    int a = 0;
    int *p = &a;//定义的同时进行初始化
    cout << "*p= " << *p<<endl;//表示的是值0
    cout << "p" << p<<endl;//表示的是地址p0039FA50

    //第二种
    int a = 0;
    int *p;
    p = &a;//先定义然后再进行初始化
    cout << "*p= " << *p << endl;//0
    cout << "p" << p << endl;//p0020FC20

    while (1);
    return 0;

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言中的指针的新认识(一) 的相关文章

  • C++实现两个单向链表的合并

    本文主要是关于如何实现两个单向链表的合并的 即使图1中的链表rb接在链表ra之后 实现的代码见函数ListCombine SLNode head1 SLNode head2 的代码块 主要的步骤是 1 对链表ra进行遍历 当遍历至尾结点 p
  • 误解#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)

    define GPIOA BASE AHB1PERIPH BASE 0x0000 typedef struct IO uint32 t MODER lt GPIO port mode register Address offset 0x00
  • 指针与const限定符

    const限定符和指针结合起来常见的情况有以下几种 const int a int const a 这两种写法是一样的 a是一个指向const int的指针 a所指向的内存单元不可改写 所以 a 是不允许的 但a可以改写 所以a 是允许的
  • 传值、传址、引用的介绍及各自的优缺点

    1 传值 1 1 概念 void Swap int left int right int temp left left right right temp int main int a 10 int b 20 cout lt lt a lt
  • ndk-build编译64位.so,出现ndk error: cast from 'int*' to 'int' loses precision [-fpermissive]

    这是因为Linux 64位系统上指针类型占用8个字节 而int类型占用4个字节 所以会出现loses precision 可以先将int 转成long类型 long类型可以隐式类型转换到int类型 如下 int func int p p 赋
  • 智能指针原理剖析(一):auto_ptr、unique_ptr

    通过常规指针管理动态内存的难点及缺点 1 忘记释放动态内存 使用new malloc分配动态内存时 需要使用delete free手动释放内存 但程序员容易忘记释放内存 从而产生内存泄露 2 动态内存释放时机不对 在尚有指针引用内存的情况下
  • C语言中的数组为什么不可赋值给另一个数组?数组的初始化,除了遍历赋值,还可以怎么被赋值?

    C语言中的数组为什么不可赋值给另一个数组 因为数组为指针常量 如 int a int b b a 是错误地 因为 int a 是 int const a int b 是 int const b 一个指针常量不可以被另一个指针常量修改 地址常
  • const char*和char *const

    1 const char const在指针前 修饰常量 指向常量的指针 指针指向可以改 指针指向的值不可以改 char ch 5 list const char pStr ch pStr w error pStr hi 提示 虽然不能用pS
  • C++中引用的用法以及将引用作为函数的形参

    在C 中引用就相当于是给变量起了一个别名 有点类似于指针 但是与指针又不同 引用的初始化 int i i 10 变量i的引用 引用必须在创建的时候就要初始化 而指针可以在任意的时候初始化 引用就相当于是给变量起了一个别名 int i r i
  • 序列化和反序列化(简单)(c++)

    序列化和反序列化 简单 c 最近看了看序列化相关的 动手试着做了一下 虽然感觉自己很菜 但还是忍不住分享 由此记录成长 什么事序列化呢 我的理解 将数据转换成字节流存进内存 序列化 从指定内存取出字节流 再把字节流转换成数据 反序列化 那我
  • 【c++primer第五版】第六章函数-函数基础、参数传递、返回类型、函数重载、函数指针

    目录 函数基础 局部对象 函数声明 参数传递 main 处理命令行选项 特殊用途语言特性 调试帮助 函数匹配 函数指针 函数是一个命名了的代码块 通过调用相应的函数来执行相应的代码 函数可以有0或多个参数 通常会产生一个结果 也可以重载函数
  • C/C++2019秋招面试题集合01

    C C 2019秋招面试题集合01 8 19 腾讯 提前批 客户端开发 1 给定一个字符串数组 和一个子串 求字符串中是否存在子串 如果存在则返回首个匹配到的索引位置 否则 返回 1 不能调用库函数 例如 字符串数组 Integrity P
  • 数据结构-图的创建(邻接矩阵,邻接表)C语言实现

    图的定义 图 Graph G由两个集合V和E组成 记为 G V E 其中V是顶点的有穷非空集合 其实就是顶点 E是V中顶点偶对的有穷集合 就是边 V G 和E G 通常分别表示图G的顶点集合以及边集合 E G 可以为空集合 但是此时的图只有
  • C和C++打印指针值和地址

    1 C 中指针变量的地址和指针变量的值是两个不同的概念 指针变量的地址 这是指针变量这个变量在内存中的存储地址 如图所示0x1211 指针的值 里面存放的是一个地址 此地址即为指向的内存单元的地址 如图所示0x1101 2 假如要输出指针变
  • c++智能指针

    C 智能指针详解 C 有四个智能指针 auto ptr unique ptr shared ptr weak ptr 其中后三个是C 11支持 第一个已经被C 11弃用 智能指针介绍 智能指针主要用于管理在堆上分配的内存 它将普通的指针封装
  • 剑指Offer 22. 链表中倒数第k个节点(Easy)/ 19. 删除链表的倒数第 N 个结点(Medium)/ ListNode调用!!!

    LeetCode 19 删除链表的倒数第 N 个结点 Medium 题目链接 题解 链表中倒数第 k 个节点 双指针 清晰图解 思路 代码 Definition for singly linked list class ListNode d
  • (Java)leetcode-76 Minimum Window Substring(最小覆盖子串)

    题目描述 给你一个字符串 s 一个字符串 t 返回 s 中涵盖 t 所有字符的最小子串 如果 s 中不存在涵盖 t 所有字符的子串 则返回空字符串 注意 如果 s 中存在这样的子串 我们保证它是唯一的答案 示例 1 输入 s ADOBECO
  • java中String作为参数传递终极解决

    今天我遇到一个问题就是string的传值问题 它虽然是一个引用数据类型 但是却和基本数据类型一样无法被改变 我看到网上的很多解释都很离谱 比如说很多解释说String要看成和Integer一样的包装类 看成 是char 的包装类 所以和其一
  • C++ 智能指针详解

    点击蓝字 关注我们 参考资料 C Primer中文版 第五版 我们知道除了静态内存和栈内存外 每个程序还有一个内存池 这部分内存被称为自由空间或者堆 程序用堆来存储动态分配的对象即那些在程序运行时分配的对象 当动态对象不再使用时 我们的代码
  • 智能指针之与shared_ptr有关的enable_shared_from_this类模板04

    一 enable shared from this模板类详解 什么时候该使用enable shared from this模板类 当我们需要一个类对象返回本身并且该类使用了shared ptr智能指针时 就需要使用enable shared

随机推荐

  • 第三步:脑波提取alpha,beta,delta,theta

    4 brain power py import os from process eeg import iir processing import pandas as pd import numpy as np def mkdir path
  • shell编程--函数

    函数 定义格式 1 function name command1 commandn 2 function function name command1 commandn 注意 所有函数需要在使用前被定义 一般将函数定义放在脚本开始地方 自定
  • 华为OD机试 - 最长的完全交替连续方波信号(Java)

    题目描述 输入一串方波信号 求取最长的完全连续交替方波信号 并将其输出 如果有相同长度的交替方波信号 输出任一即可 方波信号高位用1标识 低位用0标识 如图 说明 一个完整的信号一定以0开始然后以0结尾 即010是一个完整信号 但101 1
  • 选Redis做MQ的人,是脑子里缺根弦儿吗?

    V xin ruyuan0330 获得600 页原创精品文章汇总PDF 目录 一 前情提示 二 unack消息的积压问题 三 如何解决unack消息的积压问题 四 高并发场景下的内存溢出问题 五 低吞吐量问题 六 合理设置prefetch
  • 数据库查询出结果后将时间排序后取第一条

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 查询出结果后将时间排序后取第一条 select from a where time lt 2017 03 29 19 30 36 order by time desc li
  • Hive 表操作(HIVE的数据存储、数据库、表、分区、分桶)

    1 Hive的数据存储 Hive的数据存储基于Hadoop HDFS Hive没有专门的数据存储格式 存储结构主要包括 数据库 文件 表 试图 Hive默认可以直接加载文本文件 TextFile 还支持sequence file 创建表时
  • windows11 打开chrome浏览器闪屏黑屏问题

    windows11 家庭版打开chrome浏览器的时候 电脑闪屏 甚至长时间黑屏 不得不重启 修复方法 在Google Chrome中禁用 平滑滚动 1 打开chrome 然后输入在地址栏输入 chrome flags 2 搜索名为Smoo
  • 8招搞定XenServer虚拟机优化

    XenServer是一款虚拟机软件 他的免费版本功能相对强大 相比VMware的ESXi来说 所以现在很多企业简单应用上都会用这款软件 以减小开支 VMware收费实在是太贵了 一般的企业是承担不起的 一般虚拟化之后 一台宿主机上面都会运行
  • 也说MSDN

    看到iCynosure在介绍 MSDN使用经验 忍不住也进来加两句 平时很喜欢在IE里面用alt D来切换到地址栏 但是MSDN Explorer不支持这个快捷方式 经过一番研究发现可以通过Option里面的keyboard来自定义快捷键
  • react基础04--redux 管理数据

    react基础04 redux 管理数据 1 介绍 2 方法 案例 在多个组件中使用Store中的数据 规范 store 写法 修改Store中的数据 refs属性获取元素对象 redux thunk 中间件 3 注意事项 4 说明 1 介
  • 怎么在蓝桥杯多拿点分

    蓝桥杯常考的算法有 1 枚举 暴力 2 递归 3 贪心 4 搜索 dfs和bfs 等基础算法 难度比较大的是动态规划 严格按要求输出 不要画蛇添足地打印类似 请您输入 的多余内容 能用到的函数 比如sort next permutation
  • Matplotlib可视化(2)设置pyplot的rcParams

    pylot使用rc配置文件来自定义图形的各种默认属性 称之为rc配置或rc参数 通过rc参数可以修改默认的属性 包括窗体大小 每英寸的点数 线条宽度 颜色 样式 坐标轴 坐标和网络属性 文本 字体等 rc参数存储在字典变量中 通过字典的方式
  • 2.线程常见方法

    Java多线程文章目录 目录 设置优先级 join方法 sleep方法 sleep 实现秒表功能 常见面试题 setDaemon方法 设置优先级 同优先级别的线程 采取的策略就是先到先服务 使用时间片策略 如果优先级别高 被CPU调度的概率
  • Clion-安装

    Clion安装 1 注册Jetbraions账号 https www jetbrains com 2 学生认证使用 baipiao 一年 https www jetbrains com shop eform students 3 下载Min
  • Postman提取返回值

    json响应结果 Postman是做接口测试的 但是很多接口并不是直接就能测试的 需要一些预处理 比如登录的时候 需要传递一个token 如果是网页测试 一般打开登录页面的时候就会自动生成一个token 如果返回的是json格式 用Post
  • 4 SpringBoot整合RocketMQ实现消息发送和接收

    我们使用主流的SpringBoot框架整合RocketMQ来讲解 使用方便快捷 最终项目结构如下 具体步骤如下 第一步 我们新建一个父项目rocketmq test pom类型 主要是依赖管理 包括版本的管理 以及管理module子项目 p
  • pygame库基础模块汇总

    目录 1 安装 2 使用 3 display显示模块 4 draw模块 5 event模块 event可以判断的事件 键盘事件key 6 font模块 7 time模块 8 基本框架 Pygame 是一个专门用来开发游戏的 Python 模
  • Qt+OpenGL——屏幕坐标转OpenGL归一化后的坐标

    OpenGL在显示图形时是将坐标转化为以屏幕中心为原点的一个坐标系 屏幕显示区域的x y轴的取值区间都是 1 1 如图 Qt界面的坐标系是以左上角为原点的坐标系 将鼠标点击的点转化为OpenGL坐标的算法较为简单 不再赘述直接以代码的形式进
  • 100个经典C语言程序(益智类)

    100个经典C语言程序 益智类 1 绘制余弦曲线 在屏幕上用 显示0 360度的余弦函数cos x 曲线 问题分析与算法设计 利用cos x 的左右对称性 将屏幕的行方向定义为x 列方向定义为y 则0 180度的图形与180 360度的图形
  • C语言中的指针的新认识(一)

    从开始学习C语言到现在遇到最难的问题始终是指针的问题 所以希望每次都有新的体会 然后再记录下来 能看到自己的成长 最近知道的一个新的体会 指针指向的是一个地址 所以指针所要给的值也是一个地址 所以有了这样一个值 int a 0 int p