当前位置: 首页 > news >正文

C语言 指针声明和定义 - C语言零基础入门教程

目录

  • 一.指针简介
    • 1.内存
    • 2.内存地址
    • 3.指针声明
  • 二.指针类型
  • 三.声明并初始化一个指针
    • 1.声明指针并直接初始化 – 推荐
    • 2.先声明指针在初始化 – 不推荐
  • 四.查看指针地址和指针的值
  • 五.NULL 指针 – 空指针
  • 六.重点总结
  • 七.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.指针简介

指针和数组是 C 语言的灵魂,关于数组,前面我们已经介绍完了,在讲解指针之前,需要明白三个概念:内存 / 内存地址 / 指针;

1.内存

C 语言所有变量都存放在内存中,就好比杯子里的水,水就是变量,杯子就是内存,内存作为容器用来存放变量

2.内存地址

内存地址就好比一个人除了有名字之后外还有身份证,每个人的身份证都是唯一的,内存地址也是唯一的,如何查看内存地址,下面的文章也有有讲解;

3.指针声明

指针也是 C 语言中变量的一种,其值为一个变量的地址,即内存位置的直接地址。指针变量声明的一般形式为:

/*
type:指针类型,它必须是一个有效的 C 数据类型,例如:int / float / double / char .....
var-name : 指针变量的名称
*/
type *var-name;

注意:不要忘记在指针类型和变量名中间还有一个 * 号,没有这个 * 号,只是定义了一个普通变量,这也是普通变量声明和指针声明的区别之一;

int    *p;    /* 一个整型的指针 */
int     p;    /* 一个整型的变量 */

二.指针类型

指针很灵活,它可以指向任意类型的数据。指针的类型说明了它所指向地址空间的内存,以下是有效的指针声明:

int    *p;    /* 一个整型的指针 */
double *p;    /* 一个 double 型的指针 */
float  *p;    /* 一个浮点型的指针 */
char   *p;    /* 一个字符型的指针 */

注意:不要忘记在指针类型和变量名中间还有一个 * 号,没有这个 * 号,只是定义了一个普通变量,这也是普通变量声明和指针声明的区别之一;

三.声明并初始化一个指针

1.声明指针并直接初始化 – 推荐

int     *p = 10;          //声明一个int类型的指针指向变量为10的内存地址
double  *p = 10.55;       //声明一个double类型的指针指向变量为10.55的内存地址
float   *p = 10.0;        //声明一个float类型的指针指向变量为10.0的内存地址
char    *p = "123456";    //声明一个char类型的指针指向变量为"123456"的内存地址

2.先声明指针在初始化 – 不推荐

C 语言中,定义局部变量时如果未初始化,则值是随机的;全局变量 、静态变量初始值为 0

四.查看指针地址和指针的值

在文章 格式控制符/占位符 中已经介绍了不少占位符,而对于指针的占位符则是用 %p 或者 %x 表示,具体使用参考下面例子:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 指针声明和定义
//@Time:2021/06/12 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"int main()
{int iValue = 10;int *pValue = &iValue;printf("整形变量iValue值:%d   整形变量iValue内存地址:%p\n", iValue,&iValue);printf("整形指针变量pValue值:%d   整形指针变量pValue内存地址:%p\n", *pValue, pValue);printf("-------------------------------------------------------\n");*pValue = 20;printf("整形变量iValue值:%d   整形变量iValue内存地址:%p\n", iValue, &iValue);printf("整形指针变量pValue值:%d   整形指针变量pValue内存地址:%p\n", *pValue, pValue);printf("-------------------------------------------------------\n");iValue = 30;printf("整形变量iValue值:%d   整形变量iValue内存地址:%p\n", iValue, &iValue);printf("整形指针变量pValue值:%d   整形指针变量pValue内存地址:%p\n", *pValue, pValue);system("pause");return 0;
}
/*
输出结果:
整形变量iValue值:10   整形变量iValue内存地址:004FF798
整形指针变量pValue值:10   整形指针变量pValue内存地址:004FF798
-------------------------------------------------------
整形变量iValue值:20   整形变量iValue内存地址:004FF798
整形指针变量pValue值:20   整形指针变量pValue内存地址:004FF798
-------------------------------------------------------
整形变量iValue值:30   整形变量iValue内存地址:004FF798
整形指针变量pValue值:30   整形指针变量pValue内存地址:004FF798
请按任意键继续. . .
*/

在上面例子中:声明了一个整形变量 iValue ,并使用指针 pValue 执行整形变量 iValue ,根据输出的信息可以得到结论:两者的内存地址都一样

由于整形变量 iValue 指针变量 pValue 内存地址一样,整形变量 iValue 的值发生变化后指针 pValue 也会跟着一起变化,指针 pValue 的值发生变化后整形变量 iValue 的值也会跟着一起变化,两者本来就是同一个, 就好比既可以通过名字找到你,也可以通过身份证号码找到你;

五.NULL 指针 – 空指针

在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值,赋为 NULL 值的指针被称为**空指针**。

NULL 指针是一个定义在标准库中的值为零的常量。请看下面的程序:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 指针声明和定义
//@Time:2021/06/12 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include <stdio.h>
int main ()
{int  *ptr = NULL;printf("ptr 的地址是 %p\n", ptr  );return 0;
}
//输出:ptr 的地址是 0x0

在大多数的操作系统上,程序不允许访问地址为 0 的内存,因为该内存是操作系统保留的。然而,内存地址 0 有特别重要的意义,它表明该指针不指向一个可访问的内存位置。但按照惯例,如果指针包含空值(零值),则假定它不指向任何东西。

如需检查一个空指针,您可以使用 if 语句,如下所示:

if(ptr)     /* 如果 p 非空,则完成 */
{//....
}
if(!ptr)    /* 如果 p 为空,则完成 */
{//....
}

六.重点总结

指针作为一个变量,肯定有自己的地址,占位符使用 %p 或者 %x

int *p = 10;
printf(" p : %p",p);// 输出地址:004FF798

指针作为一个变量,肯定有自己的值,占位符使用 %d ,取指针的值需要在指针变量前面加上 * ,否则是取指针的地址,例如:

int *p = 10;
printf(" p : %d",*p);// 输出值: 10
printf(" p : %p",p); // 输出地址:004FF798

指针很灵活,它可以指向任意类型的数据。指针的类型说明了它所指向地址空间的内存

七.猜你喜欢

  1. 安装 Visual Studio
  2. 安装 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸载
  4. Visual Studio 2003/2015 卸载
  5. C 语言格式控制符/占位符
  6. C 语言逻辑运算符
  7. C 语言三目运算符
  8. C 语言逗号表达式
  9. C 语言 sizeof 和 strlen 函数区别
  10. C 语言 strcpy 和 strcpy_s 函数区别
  11. C 语言 memcpy 和 memcpy_s 区别
  12. C 语言 数组定义和使用
  13. C 语言 数组遍历
  14. C 语言 数组排序 – 冒泡法排序
  15. C 语言 数组排序 – 选择法排序
  16. C 语言 数组排序 – 插入法排序
  17. C 语言 数组排序 – 快速法排序
  18. C 语言 数组下标越界
  19. C 语言 数组内存溢出
  20. C 语言 数组下标越界和内存溢出区别
  21. C 语言 数组长度计算
  22. C 语言 指针声明和定义

未经允许不得转载:猿说编程 » C 语言 指针声明和定义

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35418.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

直面秋招!花了6个月肝完阿里技术官的笔记

2. ZooKeeper 介绍 2.1. ZooKeeper 由来 正式介绍 ZooKeeper 之前&#xff0c;我们先来看看 ZooKeeper 的由来&#xff0c;还挺有意思的。 下面这段内容摘自《从 Paxos 到 ZooKeeper 》第四章第一节&#xff0c;推荐大家阅读一下&#xff1a; ZooKeeper 最早起源于雅虎研究院…...

大数据技术hadoop核心Flume

大家好&#xff0c;我是曜耀。 这几天曜耀开始复习一下自己的专业课&#xff0c;相信看过的都了解&#xff0c;就是当前热门的大数据技术与应用。我对于这门专业来说&#xff0c;一个特色就是都会&#xff0c;你说Linux我懂&#xff0c;你说java这是基操&#xff0c;python不好…...

K-means笔记

K-means算法 算法过程&#xff1a; 从N个样本数据中随机选取K个对象作为初始的聚类中心。分别计算每个样本到这各个聚类中心的距离&#xff0c;并将对象归于距离最短的聚类群中。所有样本计算完后&#xff0c;重新计算K个聚类中心。与前一次计算得到得聚类中心比较。如果聚类中…...

为什么淘宝搜索宝贝排名先后不一样,原理是什么?

为什么淘宝搜索宝贝排名先后不一样&#xff0c;原理是什么&#xff1f;  商品在淘宝搜索的排名前后是决定商品的展示多少的&#xff0c;当买家搜索了商品的相关关键词之后&#xff0c;就可以根据综合、价格、信用和价格四个不同的方式来进行排序&#xff0c;不同排序的情况下商…...

2021制造业数字化案例大会暨探营海尔数字化创新”在青岛盛大开幕

5月29日&#xff0c;“2021制造业数字化案例大会暨探营海尔数字化创新”活动在青岛成功举办。本次活动由由数字产业创新研究中心主办&#xff0c;锦囊专家、首席数字官、承办&#xff0c;海尔集团、山东省CIO联盟、青岛CIO联盟协办&#xff0c;邀请海尔集团的多位数字化高管和十…...

2021暑假每日一题 【week2 完结】

目录3763. 数字矩阵 【难度: 一般 / 知识点: 思维】3764. 三元数异或 【难度: 一般 / 知识点: 思维 贪心】3767. 最小的值 【难度: 一般 / 思维: 贪心 枚举】3768. 字符串删减【难度: 简单 / 知识点: 模拟】3769. 移动石子 【难度: 简单 / 知识点: 贪心】3763. 数字矩阵 【难度…...

2021牛客暑期多校训练营5

B、Boxes 题目大意 你有nnn个盒子&#xff0c;每个盒子内存在可能有黑球和白球中的一种&#xff0c;打开每个盒子都有一个代价wiw_iwi​&#xff0c;你还有一次询问裁判的机会&#xff0c;当然询问裁判代价为CCC&#xff0c;你需要告诉裁判这nnn个盒子每个盒子里面的球颜色&a…...

MySQL数据库从小白到小菜04

MySQL数据库从小白到小菜04MySQL进阶补充插入聚合查询COUNTSUMAVGMAXMINGROUP BYHAVING联合查询内连接外连接MySQL进阶补充 插入 在表中插入数据时用的是INSERT&#xff0c;在MySQL中&#xff0c;是可以插入(查找结果表)的数据&#xff0c;但是结果表每一列的顺序类型都必须与…...

Java学习路线图//Java、Java学习路线、Java自学、Java经验分享、经验分享、资源分享

今天整理了群里大佬们的实践经验成文为学习路线图&#xff0c;目的是帮助后来者高效的学习Java。 该路线图在保留了文章的核心架构外&#xff0c;也做了一些优化&#xff0c;包括&#xff1a; 更详细的学习内容。更精确的学习时间。优化学习方法&#xff0c;避开前端知识。及…...

Linux高级存储管理

Linux高级存储管理1.lvm定义1.1 逻辑卷2.lvm的建立3.lvm的拉伸4. lvm缩减5.lvm快照6.lvm设备的删除7.管理vdo设备1.lvm定义 1.1 逻辑卷 逻辑卷主要适用于解决存储空间扩展问题&#xff0c;逻辑卷可以利用软件实现无限扩展。LVM可以实现把新的物理分区重组成物理卷&#xff0c…...

2021-06-11 VMware centos7 无线网络配置

一、虚拟机设置 VMware界面最上面&#xff0c;选择虚拟机->设置&#xff1a;将网络连接改为桥接模式&#xff0c;如下图所示&#xff1a; 二、查看主机DNS地址 winR 输入cmd&#xff0c;启动命令行界面&#xff0c;输入ipconfig/all&#xff0c;查看主机DNS服务器地址&#…...

Anime+Vue<svg画线动画>从安装到入门使用

1.安装Anime并全局使用 npm install animejs --saveimport anime from "animejs";2.在阿里巴巴矢量图标库复制&#xff08;或者下载&#xff09;svg到页面中,注意&#xff1a;画线动画svg图标stroke属性必须有颜色值。不然看到个毛线! <template> <div> …...

win10开启局域网远程桌面连接

要求&#xff1a;两台电脑&#xff0c;同时连接在同一局域网。假设是电脑A开启允许局域网远程桌面&#xff0c;然后电脑B连接。这两台电脑需要按照下面的步骤来做。 一、电脑A 1.点击此电脑图标&#xff0c;右键&#xff0c;属性。 2.点击远程设置 3.开启允许被远程连接 4.打开…...

jQuery简单折线图插件

下载地址jQuery简单的折线图插件&#xff0c;基于百度的echarts.js插件实现的曲线图demo&#xff0c;很简单就几行代码。 dd:...

2021多校第二场F 简单计算几何模板(球体相交体积)

简单板子题题意代码题意 [原题链接](https://ac.nowcoder.com/acm/contest/11253/F) 大致题意&#xff1a; 有A&#xff0c;B&#xff0c;C&#xff0c;D四个点&#xff08;三维坐标&#xff09;和k1&#xff0c;k2两个常数 在空间上取一点P1使 |AP1|/|BP1|k1 &#xff08;所有…...

解决Ambari启用Kerberos后HDFS/YARN/SPARK等页面无法打开问题

Ambari启用Kerberos认证后HDFS/YARN/SPARK等相关的组件的web页面都无访问了&#xff0c;提示要登录&#xff0c;401: Authorization required。 Ambari版本2.7.3.0 这个问题&#xff0c;可以通过两个办法解决 配置本机的kerberos认证&#xff0c;登录可以访问的user配置组件服…...

NoSQL NewSQL

OldSQLNewSQLNoSQL分类关系型关系型非关系型非关系型应用场景交易型&#xff1a;实时&#xff0c;面向应用&#xff0c;关注热数据交易型&#xff1a;实时&#xff0c;面向应用&#xff0c;关注热数据分析型&#xff1a;非实时&#xff0c;面向统计分析&#xff0c;关注全部数据…...

部署单节点大数据平台

环境 主机 hadoop1 系统 centos7 hadoop版本 3.2.2 jdk版本 1.8.0_301 jdk和hadoop安装位置/app/ 部署 免密 # 输入四次回车 ssh-keygen -t rsa cd .ssh/ cat id_rsa.pub > authorized_keys chmod 600 authorized_keys 解压软件包 tar -zxf hadoop-3.2.2.tar.gz …...

BUUCTF 逆向工程(reverse)之Java逆向解密

程序员小张不小心弄丢了加密文件用的秘钥&#xff0c;已知还好小张曾经编写了一个秘钥验证算法&#xff0c;聪明的你能帮小张找到秘钥吗&#xff1f; 注意&#xff1a;得到的 flag 请包上 flag{} 提交 下载好题目后&#xff0c;发现它是个以.class为后缀的。所以用JD-GUI打开这…...

半个小时搞懂GDB调试

GNU调试器常常以它的命令gbd称呼它&#xff0c;它是一个交互的控制台&#xff0c;可以帮助你浏览源代码、分析执行的内容&#xff0c;其本质上是对错误的应用程序中出现的问题inx逆向工程。 一、启动调试 对于C/C程序来说&#xff0c;需要编译时加上-g参数&#xff0c;保留调…...

[益智题] —— 在 5 5 5 1 间添加运算符号使结果为24

题目结果&#xff1a; 5 * &#xff08;5 - 1 / 5&#xff09; 24 题目解析&#xff1a; 巧妙利用分数运算消去分母得到分子。...

JVM运行时数据区(内存模型)

Java程序执行过程&#xff1a; 如上图所示&#xff0c;首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀)&#xff0c;然后由JVM中的类加载器加载各个类的字节码文件。加载完毕之后&#xff0c;交由JVM执行引擎执行。 在整个程序执行过程中&#xff0…...

7-图像分割

图像分割&#xff0c;其实就是像素级别的分类 目标检测的是object级别的&#xff0c;不包含背景 图像分类-语义分割把图片的里面的像素进行划分 包含背景 目标检测-实例分割&#xff0c;边框轮廓划分起来 不包含背景 全景分割 语义分割和实例分割结合 3 应用 数据集和评价…...

RBCADS 滚动轴承计算机辅助设计系统 7A单列圆锥滚子轴承公制和英制计算机辅助设计软件

[三维滚动轴承CAD系统RBCADS ]是专门用于滚动轴承产品设计的计算机软件。使用该系列软件可以快速设计出绝大多数结构的轴承产品&#xff0c;对于提高企业对市场的快速反应能力&#xff0c;提高轴承产品的设计效率和质量&#xff0c;减少设计错误将发挥积极的作用。目前轴承行业…...

使用idea创建JavaWeb项目

使用idea创建JavaWeb项目 【第一步】 File---New---Project 【第二步】 选择Java Enterprise版本&#xff0c;然后配置tomcat 注意&#xff1a;这里关联的tomcat home指的是tomcat的解压目录&#xff08;bin目录的上一级目录&#xff09;&#xff1b; 【第三步】 选择使用模板…...

RabbitMQ快速初始化安装图文详细步骤

RabbitMQ 是一个流行的开源消息队列系统。用于在分布式系统中存储转发消息&#xff0c;在易用性、扩展性、高可用性等方面表现不俗。 小九今天为大家带来RabbitMQ的快速初始化安装图文详细步骤~希望能够帮到大家&#xff01; 初始化安装 常规的安装&#xff0c;需要经过前期下…...

Filecoin减产即将来临IPFS黄金时间你抓住了么?

按照Filecoin官方之前发布的信息&#xff0c;Filecoin首次产量下降时间段是2021年4月十五号&#xff0c;包括SAFT,基金会&#xff0c;团队和生态的释放&#xff0c;4月十五号SAFT半年期所有线性释放结束&#xff0c;单天生产降低43.2%,也就是过后流动到市场的Filecoin将每日降低…...

druid-0.21.1基础功能演示

首页 搭建成功之后&#xff0c;首页如下图所示 Druid支持多种数据导入方式&#xff1a; UI界面&#xff0c;根据步骤和提示&#xff0c;一步步执行即可UI界面&#xff0c;提交json格式的task文件本地curl命令提交json格式的task文件Druid家目录下&#xff0c;执行自带的post…...

常见各类算法

冒泡&#xff1a; 1、依次比较相邻的元素&#xff0c;如果第一个比第二个大&#xff0c;则交换位置&#xff1b; 2、从第一个交换到最后一个时&#xff0c;最后的元素一定是最大的&#xff1b; 3、然后对所有的元素都执行此操作O(n^2)快排&#xff1a; 1、选择一个基准&#…...

[前端学习]ES6进阶学习

async/await EventLoop(同步和异步) API接口案例 总结...

dbc2000 注册机|dbc2000 注册码注册机下载

点击下载来源&#xff1a;dbc2000 注册机 dbc2000 注册机是同名源程序软件的注册机软件&#xff0c;该源程序软件是一款应用于数据库搭建以及数据写入的数据库架设工具&#xff0c;它拥有强大的数据写入功能&#xff0c;在作为应用程序使用时&#xff0c;它不仅可以充当数据属性…...

秋招面经第八弹:网易二面-数据开发工程师

秋招第八弹&#xff1a;网易二面-数据开发工程师 写在最前&#xff1a;秋招以来一直在冲&#xff0c;因为事情比较多&#xff0c;对于笔试面试一直没有复盘&#xff0c;现在靠仅存的记忆把面试的一些问题记录下来&#xff0c;尽可能记录出能回忆到的问题&#xff0c;但可能记的…...

安卓课程格子APP

https://download.csdn.net/download/weixin_57836618/73810452 功能演示&#xff1a; 查看所有课程 点击主页面空白处即可添加课程 添加课程之后查看课程 查看双周课程 查看单周课程 6.查看课程详情...

强化学习——格子世界

强化学习——格子世界 项目源码地址&#xff1a;https://gitee.com/infiniteStars/machine-learning-experiment 1. 实验内容 2. 实验代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.table import Table from xml.dom.minidom import Document #手…...

华为机试 - 跳格子游戏

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 地上共有N个格子&#xff0c;你需要跳完地上所有的格子&#xff0c;但是格子间是有强依赖关系的&#xff0c;跳完前一个格子后&#xff0c;后续的格子才会被开启&#xff0c;格子间的依赖关系由多组st…...

php 爬课程表信息,Ruby爬取教务系统生成课程表

我为什么要虐自己最近觉得课程格子广告越来越多&#xff0c;乱七八糟的东西越来越多&#xff0c;完全失去了一开始的存在价值&#xff0c;并且没有电脑端app&#xff0c;想查看课程必须拿出手机&#xff0c;而我使用电脑频率要比手机高&#xff0c;所以才有了折腾的动力。于是我…...

android 课程表 ui,UICollectionViewLayout实现课程表布局

因为项目中有课程表的相关模块&#xff0c;第一时间想到用UICollectionView。然而后期的需求越来越复杂&#xff0c;每个格子需要展示的内容越来越多&#xff0c;所以不得不寻找合适的解决方案。最后发现自定义UICollectionViewLayout可以实现我的需求。先放效果图&#xff1a;…...

Android自定义View课程表,Android 自定义View课程表表格

自己闲下来时间写的一个课表控件使用的自定义LinearLayout 里面View都是用代码实现的 最终效果如下图 写的可能有问题希望多多指点创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数 和节数大概的布局三这样的根据上面的看来觉得总体布局我分了两个 上面的星期是…...

java课程设计设计_java课程设计

1. 团队课程设计博客链接https://www.cnblogs.com/choco1ate/p/12172223.html2.本组课题及本人任务本组课题&#xff1a;泡泡堂(炸弹人)游戏本人任务&#xff1a;Box类(游戏地图中的每个方格)Bomb类(游戏过程中的)游戏玩家输赢信息的文件储存3.需求分析Box类&#xff1a;该类为…...

《课程格子》的一个笔试题目

题目如下&#xff0c;感觉很适合喜欢琢磨的程序员&#xff0c;也是考验你编码风格的时候。 Lets make a tower defense game&#xff08;塔防游戏):1. You have 1 tower, with H health and D dps(damage per second).2. There are n attackers, each with h_i health and d_i …...

Android仿照超级课程表 or 课程格子 一键提取课表功能(方正系统)

参考文章http://blog.csdn.net/sbsujjbcy ,本文仿照‘ 安卓弟 提供的android 项目实战——打造超级课程表一键提取课表功能文章&#xff0c;对他的代码进行了修改和补充&#xff0c;为什么要修改呢&#xff1f;原因是安卓弟的那个源码版本过于老旧&#xff0c;很多方法已经过…...

二进制换算成八进制、十进制、十六进制

二进制换算成八进制、十进制、十六进制一、介绍&#xff1a;二、二进制转十进制计算二进制数转十进制的方法&#xff1a;&#xff08;1&#xff09;计算二进制数 0101 0101转十进制。&#xff08;2&#xff09;计算二进制数 1000 0101 转十进制&#xff1a;三、二进制转八进制计…...

进制换算

现在大家见得比较多的进制一般就是二进制和十进制。首先作为一名学生用的最多的肯定是十进制&#xff0c;其次作为一名程序猿见得最多的肯定是二进制。但是作为程序猿而言中间还有八进制&#xff0c;后面还有十六进制比如哈希码。 先解释一下什么是进制&#xff1a;所谓通俗的…...

linux开发汉诺塔游戏程序,汉诺塔游戏终极版

今天&#xff0c;我完成了汉诺塔游戏终极版。使用一个脚本来输出汉诺塔自动运行的步骤&#xff0c;再通过管道提供给汉诺塔游戏&#xff0c;实现了自动完成汉诺塔。在去年我用C语言写完汉诺塔游戏时&#xff0c;一直有个未完成的心愿。我希望能让汉诺塔自动运行&#xff0c;自己…...

C语言递归函数——汉诺塔问题笔记

C语言递归函数——汉诺塔问题笔记 学C的时候老师根本没讲过递归&#xff0c;当时自己也没把它当回事&#xff0c;但是递归在算法中的地位实在太重要了。于是翻了翻C课本上的递归&#xff0c;书上讲的不多&#xff0c;但是一个经典的汉诺塔问题就让我伤透了脑筋。看了七八个钟头…...

VS2019MFC实现汉诺塔游戏(鼠标拖动盘子无轨迹、连续演示、单步演示)

成品效果展示 VS2019MFC实现汉诺塔游戏&#xff08;鼠标拖动盘子无轨迹、连续演示、单步演示&#xff09;源码及exe文件下载地址...

汉诺塔问题(详解)

1问题描述 问题提出&#xff1a;有三个塔(分别为A号&#xff0c;B号和C号)。开始时&#xff0e;有 n个圆形盘以从下到上、从大到小的次序叠置在A塔上。现要将A 塔上的所有圆形盘&#xff0c;借助B搭&#xff0c;全部移动到C搭上。且仍按照原来 的次序叠置。 移动的规则如下&…...

项目三-体验复杂度(2)汉诺塔

/* * copyright &#xff08;c&#xff09; 2016&#xff0c;烟台大学计算机学院 * All rights reserved. * 文件名称&#xff1a;1.cpp * 作者&#xff1a;杨俊杰* 完成日期&#xff1a;2016年9月22日 * 版本号&#xff1a;v1.0 * 问题描述&#xff1a;用递归算法求解汉诺塔问…...

3D屏保程序:汉诺塔

学过程序的人一定记得汉诺塔&#xff0e;我们学的第一个程序是HelloWorld,而碰到的第一个坑就是汉诺塔&#xff0c;短短十几行代码&#xff0c;不知花费了多少时间精力去理解&#xff0e;我记得当年的开发环境还是蓝屏的&#xff0c;汉诺塔程序的输出还是一行行枯燥无趣的字符串…...

汉诺塔python3函数编写和过程分析

写在最前面&#xff0c;这个是在学习廖雪峰python3教程的一个学习笔记 因为基础不熟&#xff0c;所以就写了这篇博客来当做一个笔记 如若有不对的额地方&#xff0c;欢迎指出&#xff08;就不欢迎打脸了&#xff0c;打脸怕疼&#xff09; #!/usr/bin/env python3 # -*- codin…...