【C语言学习】指针变量

news/2024/5/9 16:10:31/文章来源:https://blog.csdn.net/m0_51325544/article/details/132422495

一、运算符&

1.&运算符可以获得变量的地址,它的操作数必须是变量

int i;
printf("%x",&i);

2.地址的大小是否与int相同取决于编译器

int i;
printf("%p",&i);//%p以32进制输出i的地址

二、指针变量

指针变量是保存地址的变量,指针里面保存的是其他变量的地址。
普通变量的值是实际的值,但指针变量的值是具有实际值的变量的地址

int i;//定义变量i
int* p = &i;//定义指针p,指向int类型的i(指针p指向i)。 即将i的地址赋值给指针p!!!
int *p = &i;//定义指针时int* p或int *p都可以,“*”的位置不影响
int* p,q;
int *p,q;//这两个都是只有变量p是指针,而变量q不是
int *p,*q;//这才表示变量p和q都是指针

三、指针的使用

定义一个f函数,f要的是int 的指针p

void f(int *p);

在函数f被调用时得到的是某个变量的地址:

int i=0; f(&i);//这里得到的就是i的地址

访问那个地址上的变量“*”
“*”是一个单目运算符,用来访问指针的值所表示的地址上的变量,可以做右值也可以做左值。

#include<stdio.h>
void f(int *p);
void g(int k);int main(void)
{int i=6;printf("&i=%p\n", &i);f(&i);g(i);return 0;
}void f(int *p)
{printf(" p=%p\n", p);//这里的p是一个指针 printf("*p=%d\n",*p);//这里的*p连在一起可以看做是一个整数 
}void g(int k)
{printf("k=%d\n",k);
}

在这里插入图片描述

在这里插入图片描述
使用指针修改指针所指变量的值,代码如下:

#include<stdio.h>
void f(int *p);
void g(int k);int main(void)
{int i=6;printf("&i=%p\n", &i);f(&i);g(i);return 0;
}void f(int *p)
{printf(" p=%p\n", p);//这里的p是一个指针 printf("*p=%d\n",*p);//这里的*p连在一起可以看做是一个整数 *p = 26;
}void g(int k)
{printf("k=%d\n",k);
}

在这里插入图片描述
这里的k=26意味着经过函数f调用之后main函数中i的值被改了,此时指针p可以直接访问变量i,那么p就相当于i。所以p=26实际上是直接修改了i的值。

左值为什么叫左值
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

precision指标的average参数

同样适用于recall、F1 分类任务种类 先说一下分类任务分几种&#xff0c;分类任务主要分为二分类、多分类和多标签这三种。 现在假设我们有一个样本&#xff0c;叫s 二分类是最常见的&#xff0c;将s分给A或B这两类。 多分类是将s分给A或B或C或更多的类别。 多标签是有A、B、…

VSCode如何为远程安装预设(固定)扩展

背景 在使用VSCode进行远程开发时&#xff08;python开发之远程开发工具选择_CodingInCV的博客-CSDN博客&#xff09;&#xff0c;特别是远程的机器经常变化时&#xff08;如机器来源于动态分配&#xff09;&#xff0c;每次连接新的远程时&#xff0c;都不得不手动安装一些开…

【网络基础实战之路】VLAN技术在两个网段中的实际应用详解

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 【网络基础实战之路】基于…

laravel aws s3

由于公司有境外项目&#xff0c;服务器、文件存储都是用的亚马逊&#xff0c;真真地是没有用过&#xff0c;在此记录一下自己的s3研究结果 Laravel - aws - s3 第一步创建用户&#xff0c;生成秘钥&#xff1a; 第二步创建存储桶&#xff1a; 1、创建存储桶时&#xff0c;以下…

html动态爱心代码【一】(附源码)

前言 七夕马上就要到了&#xff0c;为了帮助大家高效表白&#xff0c;下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐&#xff0c;可用于520&#xff0c;情人节&#xff0c;生日&#xff0c;表白等场景&#xff0c;可直接使用。 效果演示 文案修改 var loverNam…

对于个人来说,ChatGPT有什么用,缺点有哪些?

ChatGPT聊天机器人风靡全球&#xff0c;但也有一些人它认为模糊了原创性的界限&#xff0c;扼杀了创造力&#xff0c;还有些人害怕被机器人取代&#xff0c;由此失去生计和职业发展前景。 但更多的人更愿意积极拥抱ChatGPT&#xff0c;除了内容本身&#xff0c;最主要的是相比…

Power apps:做个简单的扫码应用

Power apps的扫码应用只能客户端使用 一、创建一个窗口"扫码APP”,插入媒体工具“条形码读卡器” 二、如果需要在扫码时做一个动作&#xff0c;可以设置它的属性&#xff0c;比如跳转窗口之类的 三、添加一个文本标签&#xff0c;实现在扫码后标签显示条形码&#xff08…

《Go 语言第一课》课程学习笔记(十)

复合数据类型 同构复合类型&#xff1a;从定长数组到变长切片 由多个同构类型&#xff08;相同类型&#xff09;或异构类型&#xff08;不同类型&#xff09;的元素的值组合而成&#xff0c;这类数据类型在 Go 语言中被称为复合类型。 数组有哪些基本特性&#xff1f; Go 语…

C语言和JavaScript中的默认排序行为对比

前言 今天在js里使用sort时遇见了一个不理解的现象 即使用sort默认排序后 9 从排序前的第一位被排到了最后一位.一开始我对js sort的理解和c一样&#xff0c;然后通过查阅后发现并不是这样. 正文 排序是一项常见而重要的操作。不同的编程语言提供了不同的排序函数&#xf…

【Unity3D】程序纹理简单应用

1 几何纹理应用 本文所有案例的完整资源详见→Unity3D程序纹理简单应用。 1.1 边框 1&#xff09;边框子图 Border.shadersubgraph 说明&#xff1a;Any 节点用于判断输入向量中是否存在一个分量非零&#xff0c;Branch 节点根据输入的真假走不同的分支&#xff0c;详见→Shad…

威班8月份PMP模拟考试实录(附大D老师考前寄语)

威班8月份模拟考试于2023年8月12日在深圳市福田区兴华大厦成功举办&#xff0c;这次考试依旧是通过线上线下同步的方式&#xff0c;在深圳周边的学员直接到达现场做卷考试&#xff0c;全国各地不能到达现场的其他学员已提前收到考试所需要的文件&#xff0c;与现场学员同时参加…

python解析小说

前言 在信息爆炸的时代&#xff0c;网络上充斥着大量的小说资源&#xff0c;让人们能够随时随地尽享阅读的乐趣。然而&#xff0c;有些小说网站要求用户付费才能获取完整的内容&#xff0c;这给许多人带来了困扰&#xff0c;尤其是像我这类对金钱概念模糊的人。不过&#xff0…

基于学习交流社区的自动化测试实现

一 项目介绍 项目名称 项目名称&#xff1a; 学习交流社区 项目介绍 项目介绍&#xff1a; 学习交流社区是一个基于Spring的前后端分离的在线论坛系统。使用了MySQL数据库来存储相关信息&#xff0c;项目完成后使用Xshell将其部署到云服务器上。 前端页面&#xff1a; 前端共由…

【LeetCode】151. 反转字符串中的单词 - 双指针

目录标题 2023-8-22 09:53:10原始优化 151. 反转字符串中的单词 2023-8-22 09:53:10 也是想到了快慢指针的思想。 原始 class Solution {public String reverseWords(String s) {int length s.length();Integer pre null;Integer last null;StringBuilder stringBuilde…

使用fdisk分区时,确实创建了一个分区,但是这个分区似乎并没有被Linux系统识别解决方法

使用fdisk分区时&#xff0c;确实创建了一个分区&#xff0c;但是这个分区似乎并没有被Linux系统识别解决方法 故障现象描述 这是我的sdb硬盘我想给他扩展一个分区sdb4 我开始扩展硬盘 似乎没用什么太大的问题也同步到磁盘了使用lsblk查看一下分区情况 系统并没有扫描到sdb4这…

第六章,创作文章

6.1添加创作页面 <template><div class="blog-container"><div class="blog-pages"><div class="col-md-12 panel"><div class="panel-body"><h2 class="text-center">创作文章&l…

轻松实现24小时无人直播带货,只需一款无人值守手机直播软件!

现在做线上运营&#xff0c;基本上就离不开短视频平台&#xff0c;想要做好短视频平台&#xff0c;就得弄懂如何在平台上进行直播。 今年以来&#xff0c;以专帮科技为首的一些科技公司研发的手机无人直播技术得到了快速发展&#xff0c;使得越来越多的企业和个人开始使用此类…

shell 01(概述)

一、shell linux系统是如何操作计算机硬件CPU,内存,磁盘,显示器等[参考]? 答: 使用linux的内核操作计算机的硬件 通过编写shell命令发送给linux内核去执行,操作计算机硬件, 所以shell命令是用户操作计算机硬件的桥梁;shell是命令&#xff0c;类似于windows系统Dos命令;shell是…

IDEA中导入多module的Maven项目无法识别module的解决办法

首先举个栗子 这是正常的多module工程&#xff08;spring cloud项目&#xff09; 正常工程.png 这是导入出现问题的多module工程 导入出现问题的工程.png 原因&#xff1a; 出现该问题&#xff0c;是由于打开工程的时候IDEA只编译了最外层的pom.xml文件&#xff0c;而内部的…

Dubbo服务

dubbo服务分为服务的提供者和消费者 1.服务提供者在nacos注册后通过 DubboService 暴漏服务 2.dubbo服务消费者通过 DubboReference来进行远程服务调用 dubbo的高级特性 1.启动检查&#xff1a;如果启动消费者无提供者则报错&#xff0c;通过配置文件check&#xff1a; fa…