c语言学习18指针简介

1指针理解

指针是什么,能干什么

指针去操作变量

指针操作数组及数组元素shu

指针操作结构体

全名:指针类型

理解变量的值:根据需要的数据类型定义的变量,分配的内测分配的空间所写入的值

理解变量的地址编号值:

定义变量时,空间会分配相应的编号的地址空间,此变量的地址编号值为分配的空间的首字节地址编号的值

理解指针:指针类型是一种数据类型,用指针类型定义的变量叫指针类型变量(指针变量)(指针)

指针类型变量是用来存地址编号值的

2分析指针要素

2.1给出一个指针变量能分析出他的要素

        int *p;这是一个指针类型的变量(本质是一个变量)(是一个可以存地址编号的变量)

        分析:变量名:p     变量名的类型:int *     int 指向对象类型

说明:这是一个指针类型,可以用来存储地址编号的,可以存整型变量的地址编号

//指针类型:  除了变量名以外的内容就是变量名的类型

int (*p)[10]    变量名 :p        变量名类型 int (*)[10]            指向对象的类型int  [10] 

 int(*a) (void)     变量名:a        变量名类型  int(*) (void)              指向对象的类型 int (void)     

 int **p     变量名:p       变量名类型  int  **            指向对象的类型 int   *  

//指向对象的类型 : 除了*和变量名意外的内容 就是指向对象的类型

        举例  int a[];  变量名:a  变量名的类型:int  []

2.2 根据指针需求定义指针变量

格式:指向对象类型 *变量名; 

       说明:定义指针类型变量,根据需求选择确的指针类型,然后根据格式定义

举例:  

        int a;  int *p;        p=&a;//p存a的地址

        int *m; int **p;      p=&m;//px存m的地址

说明:指针变量p存储了变量a的地址;  ==可以说指针变量p指向了变量a;

          指针变量存了谁的地址,就是指向了谁

3指针的使用

  3.1      先定义一个符合要求的指针

明确指向(存了一个变量的地址)%x

3.2 &:取地址符                *:取空间内容符

        int *p;

        printf(“p:%d\n”,p);   //p里存储的值,

        printf(“*p:%d\n”,*p);//p里存储的值所代表的地址空间的编号

        printf(“&p:%d\n”,&p);//p的地址

注意:    int *p  定义语句中,*可以理解指针的标志

                printf(“p:%d\n”,*p);中的* 是取内容符号

int *p;

int a=10;

p=&a;

*p=20;    //*p取出a的值,将其改为20

        printf(“*p:%d\n”,*p);    //20

        printf(“*a:%d\n”,a);      //20

3.3指针变量占用空间的大小

关键字:

        功能:计算对应类型的变量占用空间的大小(字节)

        sizeof(变量名/变量名的类型)

看平台依据是32位,还是64位的,dev默认64

常用的为32位的,此时指针变量占4字节

64位的,指针变量占用8字节

指针变量占用空间大小,与所指的类型没有关系

指针变量的本质是:存储地址编号

所有的地址编号都是二进制32位的数据,32位就是4个字节。

3.4指针移位

说明:指针移位就是指针变量的增减

指针变量的移位后的结果,跟指向对象的类型有关

int a=10;

int *p;

char *q;

p=&a;

q=p;  //p存的地址给q,同时指向同一块空间,可以这样写不要这样用

#include  <stdio.h>

{

        int a=10;

        int *p;

        char *q;

        p=&a;

q=p;

//假设地址是0x1234578

 printf(“*p:%x\n”,*p);//12345678

 printf(“*q:%x\n”,*q);//78

// char 一个字节,只能是首字节,int 可以是四个字节

p=p+1;

q=q+1;

printf(“*p:%d\n”,*p);    //+4

 printf(“*a:%d\n”,*q);      //+1

 printf(“*p:%x\n”,*p);//垃圾值

 printf(“*q:%x\n”,*q);//56

//int *型移动一步,p指向偏移+4;char型移动一步,q偏移+1

}

指针移位跟指向对象的数据类型有关

int *                     +4

char *                +1

short*                +2

double *                +8

补充:

p+1;   //p存储的地址不变2017   (p+1)整体2021

p++;//p存储的地址变成2021

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

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

相关文章

Linux:解决远程X无法连通问题,X-Server开启TCP连接

一、问题分析 提前申明&#xff1a; 本次实验使用REHL 8 进行操作&#xff01; 客户机 A 为X-Client &#xff0c;即远程X的客户端。 服务机 B 为X-Server&#xff0c;即远程X的服务端。 问题的所有操作均在已经配置好Xorg的前提下进行的&#xff0c;不知道不配置会有什么影响&…

零基础Java第十九期:认识String(一)

目录 一、String的重要性 二、String的常用方法 2.1. 字符串构造 2.2. String对象的比较 2.3. 字符串查找 2.4. 转化 2.4. 字符串替换 2.5. 字符串拆分 2.6. 字符串截取 一、String的重要性 在C语言中已经涉及到字符串了&#xff0c;但是在C语言中要表示字符串只能…

HarmonyOS4+NEXT星河版入门与项目实战--------ArkTs语言与TypeScript语法

文章目录 1、ArkTs语言1、ArkTs 特点2、ArkTs与Javascript关系 2、TypeScript 语法 1、ArkTs语言 在html的开发中&#xff0c;实现一个页面元素&#xff0c;比如Button&#xff0c;往往包含了以下三种要素&#xff1a;JS、HTML、CSS。JS处理逻辑与响应、HTML 用来声明标签生成…

使用yak编写yakit漏洞检测插件

前言 在使用yakit进行编写yaml插件的时候遇到了yaml无法处理的情况&#xff0c;我不知道是不是yaml无法处理或者说是yakit和yaml的兼容还不够&#xff0c;面对变量的处理还是有些难受&#xff0c;于是花了点时间看了官网的yak语法的手册和其他人写的yak插件尝试使用yak语言来完…

信也科技和云杉网络的AI可观测性实践分享

1. 信也科技 2、云杉网络 2.1 中国移动

Blossom:开源私有部署的markdown笔记软件

在信息化、数字化时代&#xff0c;我们每个人的生活和工作都离不开笔记和知识管理。从简单的待办事项&#xff0c;到复杂的项目计划&#xff0c;再到存储大量个人知识的工具&#xff0c;如何选择一个高效、便捷且符合个人需求的笔记软件&#xff0c;成了许多人的难题。最近在逛…

Spring:DI依赖注入的方式

Spring为我们提供了两种注入方式&#xff0c;分别是: setter注入 简单类型引用类型 构造器注入 简单类型引用类型 setter注入 在bean中定义引用类型属性&#xff0c;并提供可访问的set方法配置中使用property标签ref属性注入引用类型对象 (1)项目中添加BookDao、BookDaoIm…

逆向攻防世界CTF系列37-crackme

逆向攻防世界CTF系列37-crackme 参考https://blog.csdn.net/xiao__1bai/article/details/120230397 nspack的壳&#xff0c;查了一下好像是北斗的一个壳 没找到什么脱壳软件&#xff0c;只能手动脱壳了 手动脱壳的最终要的是ESP定律 ESP定律的原理就是“堆栈平衡”原理 涉及…

按钮权限的操作方法

首先先在你的本地储存里边&#xff0c;加入一些你指定的字段 然后创建一个文件夹&#xff0c;在此文件夹下创建一个js文件&#xff0c;文件内容如下 在你所需要隐藏按钮的页面引入此js文件&#xff0c;并且通过 directives自定义指令绑定你的每一个按钮。在js文件中通过三个常量…

vscode 关闭绑定元素 隐式具有“any”类型这类错误

在vue的项目里面&#xff0c;经常看到any类型的报错&#xff0c;真的很烦的 在tsconfig.json中配置以下参数 “noImplicitAny”: false 就可以了 出现类型“never”上不存在属性“userName”。ts-plugin(2339) 配置该参数 modeuleResolution : node "compilerOptions&qu…

springboot 的 Profile

什么是 Profile &#xff1f; 应用所在的运行环境发生切换时&#xff0c;配置文件常常就需要随之修改。 Profile&#xff1a;——就是一组配置文件及组件的集合。 可以整个应用在不同的profile之间切换&#xff08;设置活动profile&#xff09;&#xff0c;整个应用都将使用该…

onvif协议相关:4.1.6 Digest方式云台控制启动

背景 关于onvif的其实很早之前我已经在专栏中写了不少了, 使用onvif协议操作设备 但最近有陆陆续续的粉丝问我, 希望我在写一些关于 onvif的设备自动发现、预置位跳转、云台操作的博客。 满足粉丝的需求,安排。 今天我们来实现 设备云台的控制(启动) 实现 1.在ONVIF Devi…

【JAVA毕业设计】基于Vue和SpringBoot的农机电招平台

本文项目编号 T 615 &#xff0c;文末自助获取源码 \color{red}{T615&#xff0c;文末自助获取源码} T615&#xff0c;文末自助获取源码 随着农机电招行业的不断发展&#xff0c;农机电招在现实生活中的使用和普及&#xff0c;农机电招行业成为近年内出现的一个新行业&#x…

基于Jmeter的分布式压测环境搭建及简单压测实践

写在前面 平时在使用Jmeter做压力测试的过程中&#xff0c;由于单机的并发能力有限&#xff0c;所以常常无法满足压力测试的需求。因此&#xff0c;Jmeter还提供了分布式的解决方案。本文是一次利用Jmeter分布式对业务系统登录接口做的压力测试的实践记录。按照惯例&#xff0…

代码随想录算法训练营day41|动态规划04

最后一块石头的重量|| 返回剩余最后一块石头石头最小的可能重量&#xff0c;那么就应该最后剩余的两块石头尽量都等于或接近总重量的一半&#xff0c;这样剩下的就是一半的质量 目标和 给定一个非负整数数组&#xff0c;a1, a2, …, an, 和一个目标数&#xff0c;S。现在你有…

Python+Flask实现随机选谷票游戏

西方曾进行一项著名的投资随机性实验&#xff0c;对比基金经理与猴子在选股上的表现。 实验方法&#xff1a;主持人提供一系列股票&#xff0c;基金经理依靠其专业知识&#xff08;如财务报表、行业趋势、产品市场及公司文化与管理层分析等&#xff09;进行筛选&#xff1b;而…

【Python数据可视化分析实战】数据爬取—京东手机品牌信息数据爬取和数据分析与可视化

大数据分析设计方案 1.数据集来源&#xff1a;https://search.jd.com 2.实现思路&#xff1a; &#xff08;1&#xff09;数据爬取 首先&#xff0c;我们需要从京东平台上采集手机品牌的相关数据。可以通过网络爬虫或API接口等方式获取数据。为了保证数据的完整性和准确性&…

使用 TensorFlow 实现 ZFNet 进行 MNIST 图像分类

ZFNet&#xff08;ZF-Net&#xff09;是由 Matthew Zeiler 和 Rob Fergus 提出的卷积神经网络架构&#xff0c;它在图像分类任务中取得了显著的效果。它在标准卷积神经网络&#xff08;CNN&#xff09;的基础上做了一些创新&#xff0c;例如优化了卷积核大小和池化策略&#xf…

11.15 HTML

传统路线 HTML、CSS、JS AjaxJQueryMySQLJDBCServletJSPEL&JSTLCookieSessionFilterServlet案例MybatisSpringSpringMVCSpringBoot 全新路线 HTM、CSS、JSAjax、AxiosVue、Element前端工程化 vue脚手架MavenSpringBoot基础 基于SpringBoot进行讲解Spring的IOC&#xff…

打造旅游卡服务新标杆:构建SOP框架与智能知识库应用

随着旅游业的蓬勃兴起&#xff0c;旅游卡产品正逐渐成为市场的焦点。为了进一步提升服务质量和客户体验&#xff0c;构建一套高效且标准化的操作流程&#xff08;SOP&#xff09;变得尤为重要。本文将深入探讨如何构建旅游卡的SOP框架&#xff0c;并介绍如何利用智能知识库技术…