C语言—指针和数组

写在前

一个指针变量指向某个普通变量,则指针变量就等于普通变量。
指针变量存放的是地址,普通变量存放的是数据。

int * p;
int i=5,j;
p = &i;

此程序,*p=i=5,在所有出现 *p 或 i 的位置,两者都可以互相替换。

通过

j = *p;

可以将i的值5赋给j。

通过指针p间接访问变量a,改变a的值


{
	int a;
	int *p=&a;
	
	printf("请输入整数:");
	scanf("%d",&a);
	printf("a=%d\n",a);
	
	printf("请输入整数:");
	scanf("%d",p);
	printf("a=%d\n",a);
	
	return 0;
 } 

在这里插入图片描述

一维数组名a存放的是数组第一个元素的地址a[0]

数组名就是个地址信息,数组名就是数组第一个元素的地址。
在这里插入图片描述

#include <stdio.h>
int main ()
{
	int a[5];
	
	printf ("%d\n",&a[0]);//此处输出为a[0]的地址 6487552
	printf ("%d\n",a);//此处输出为数组名a的含义 6487552
	
	return 0;
}

在这里插入图片描述

如果p是一个指针变量,那么p[i]永远等价于*(p+i)

#include <stdio.h>
int main()
{
    int a[5] = { 1,2,3,4,5};
    int i;
 
    for( i = 0 ; i < 5 ; i++ )
	{
        printf("%d " , a[i]);
    }
    printf ("\n");
 
    for(i = 0 ; i < 5 ; i++ )
	{
        printf("%d " , *(a+i));
    }
 
    return 0 ;
}

在这里插入图片描述

注意:

int (*p[5])

定义了一个数组,数组名为p,其中包含5个指针,指针指向整型类型数据;

int (*p)[5]

定义了一个指针,指针指向一个数组,数组中有5个元素,元素类型为整型。
#include <stdio.h>
int main()
{
	char a[] ="iwatch";
	int b[5]={1,2,3,4,5};
	float c[5]={1.1,2.2,3.3,4.4,5.5};
	double d[5]={1.1,2.2,3.3,4.4,5.5};
	
	printf("a[0] -> %p, a[1] -> %p, a[2] -> %p \n",&a[0],&a[1],&a[2]);
	printf("b[0] -> %p, b[1] -> %p, b[2] -> %p \n",&b[0],&b[1],&b[2]);
	printf("c[0] -> %p, c[1] -> %p, c[2] -> %p \n",&c[0],&c[1],&c[2]);
	printf("d[0] -> %p, d[1] -> %p, d[2] -> %p \n",&d[0],&d[1],&d[2]);
	
	return 0;
}

在这里插入图片描述

#include <stdio.h>
int main()
{
	char a[] ="iwatch";
	int b[5]={1,2,3,4,5};
	float c[5]={1.1,2.2,3.3,4.4,5.5};
	double d[5]={1.1,2.2,3.3,4.4,5.5};
	
	char *p=a;
	printf("*a = %c, *(a+1) = %c, *(a+2) = %c\n",*a,*(a+1),*(a+2));
	printf("*p = %c, *(p+1) = %c, *(p+2) = %c\n",*p,*(p+1),*(p+2));
	int *q=b;
	printf("*b = %d, *(b+1) = %d, *(b+2) = %d\n",*b,*(b+1),*(b+2));
	printf("*q = %d, *(q+1) = %d, *(q+2) = %d\n",*q,*(q+1),*(q+2));
	
	printf("a[0] -> %p, a[1] -> %p, a[2] -> %p \n",&a[0],&a[1],&a[2]);
	printf("b[0] -> %p, b[1] -> %p, b[2] -> %p \n",&b[0],&b[1],&b[2]);
	printf("c[0] -> %p, c[1] -> %p, c[2] -> %p \n",&c[0],&c[1],&c[2]);
	printf("d[0] -> %p, d[1] -> %p, d[2] -> %p \n",&d[0],&d[1],&d[2]);
	
	return 0;
}


在这里插入图片描述

#include <stdio.h>
#include <cstring>
int main()
{
	char *str="I love iwatch!";
	int i,length;
	
	length=strlen(str);
	
	for(i=0;i<length;i++)
	{
		printf("%c",str[i]);
	}
	return 0;
}

在这里插入图片描述

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

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

相关文章

2023年亚太杯数学建模A题水果采摘机器人的图像识别功能(基于yolov5的苹果分割)

注&#xff1a;.题中附录并没有给出苹果的标签集&#xff0c;所以需要我们自己通过前4问得到训练的标签集&#xff0c;采用的是yolov5 7.0 版本&#xff0c;该版本带分割功能 一&#xff1a;关于数据集的制作&#xff1a; clc; close all; clear; %-----这个是生成yolov5 数据…

2、git进阶操作

2、git进阶操作 2.1.1 分支的创建 命令参数含义git branch (git checkout -b)<new_branch> <old_branch>表示创建分支-d <-D>删除分支 –d如果分支没有合并&#xff0c;git会提醒&#xff0c;-D强制删除-a -v查看分支-m重新命名分支commit id从指定的commi…

【数据结构】树与二叉树(廿二):树和森林的遍历——后根遍历(递归算法PostOrder、非递归算法NPO)

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语 5.2 二叉树5.3 树5.3.1 树的存储结构1. 理论基础2. 典型实例3. Father链接结构4. 儿子链表链接结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法5.3.3 树和森林的遍历1. 先根遍历&#xff08;递归、非…

XG916Ⅱ轮式装载机后驱动桥设计机械设计CAD

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;装载机 获取完整论文报告工程源文件 本次设计内容为XG916Ⅱ装载机后驱动桥设计&#xff0c;大致上分为主传动的设计&#xff0c;差速器的设计&#xff0c;半轴的设计&#xff0c;最终传动的设计四大部分。其中主传动锥齿轮…

【从删库到跑路】MySQL数据库 — E-R图 | 关系模型

&#x1f38a;专栏【MySQL】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 文章目录 &#x1f339;简述什么是E-R图⭐核心概念 &#x1f339;E-R图…

MTK联发科MT6762/MT6763/MT6765安卓核心板参数规格比较

MT6762安卓核心板 MTK6762安卓核心板是一款工业级高性能、可运行 android9.0 操作系统的 4G智能模块。 CPU&#xff1a;4xCortex-A53 up to 2.0Ghz/4xCortex-A53 up to 1.5GhzGraphics&#xff1a;IMG GE8320 Up to 650MhzProcess&#xff1a;12nmMemory&#xff1a;1xLP3 9…

Windows从源码构建tensorflow(离线编译)

由一开始的在线编译&#xff0c;到后面的离线编译&#xff0c;一路踩坑无数&#xff0c;历经整整6个半小时&#xff0c;终于编译成功&#xff01;在此记录一下参考过的文章&#xff0c;有时间整理一下踩坑记录。 一、环境配置 在tensorflow官网上有版本对应关系 win10 bazel …

只考数据结构,计算机评级C+,成都信息工程大学考情分析

成都信息工程大学(C) 考研难度&#xff08;☆☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分析&#xff09;、院校概况、24专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1715字&#xff0c;预计阅读&#xff1a;3分钟 2023考情概况 …

1、Docker概述与安装

相关资源网站&#xff1a; ● docker官网&#xff1a;http://www.docker.com ● Docker Hub仓库官网: https://hub.docker.com/ 注意&#xff0c;如果只是想看Docker的安装&#xff0c;可以直接往下拉跳转到Docker架构与安装章节下的Docker具体安装步骤&#xff0c;一步步带你安…

红黑树详解

红黑树的概念与性质 前置知识 在学习红黑树之前&#xff0c;最好有二叉查找树和AVL树的基础&#xff0c;因为红黑树本质就是一种特殊的二叉查找树&#xff0c;而红黑树的操作中需要用到AVL树中旋转的相关知识。至于二叉查找树和AVL树&#xff0c;可以参考如下两篇博客&#xf…

01、Tensorflow实现二元手写数字识别

01、Tensorflow实现二元手写数字识别&#xff08;二分类问题&#xff09; 开始学习机器学习啦&#xff0c;已经把吴恩达的课全部刷完了&#xff0c;现在开始熟悉一下复现代码。对这个手写数字实部比较感兴趣&#xff0c;作为入门的素材非常合适。 基于Tensorflow 2.10.0 1、…

C#,《小白学程序》第一课:初识程序,变量,数据与显示

曰&#xff1a;扫地僧练就绝世武功的目的是为了扫地更干净。 1 引言 编程只是一项技术&#xff0c;如包包子&#xff0c;不是什么高深的科学。 学习程序最不好的方法是先学习枯燥的语法。 学习程序主要是用代码解决问题。因此&#xff0c;我们抛开所有的语法与诸多废物&…

【Tiny_CD】Tiny_CD变化检测网络详解(含python代码)

题目:TinyCD: A (Not So) Deep Learning Model For Change Detection 论文:paper 代码:code 目录 🍟 🍟1.摘要 🍗🍗 2.贡献 🍖🍖 3.网络结构

classifier-free-guidance 扩散模型引导生成

浅谈扩散模型的有分类器引导和无分类器引导 - 知乎这篇文章主要比较一下扩散模型的引导生成的三种做法的区别。它们分别是用显式分类器引导生成的做法&#xff0c;用隐式无分类器引导的做法和用CLIP计算跨模态间的损失来引导生成的做法。 Classifier-Guidance: Diffusion Mode……

React + BraftEditor 实现富文本编辑

Braft Editor 是一个基于 React 和 Draft-js 开发的富文本编辑器&#xff0c;提供了丰富的基础功能&#xff0c;如基本文本格式化、列表、链接、图片上传、视频插入等&#xff0c;并且还支持扩展。 首先&#xff0c;确保你已经在项目中安装了 Braft Editor 和它的依赖项&#x…

腾讯云发布新一代基于AMD处理器的星星海云服务器实例SA5

基础设施的硬实力&#xff0c;愈发成为云厂商的核心竞争力。 11月24日&#xff0c;腾讯云发布了全新一代星星海服务器。基于自研服务器的高密设计与硬件升级&#xff0c;对应云服务器SA5是全球首家搭载第四代AMD EPYC处理器&#xff08;Bergamo&#xff09;的公有云实例&#…

【机器学习】平滑滤波

平滑滤波技术 平滑滤波&#xff0c;顾名思义就是对信号进行处理使之整体显得更加平滑&#xff0c;降低噪声影响&#xff0c;提高信号质量&#xff0c;它常见于数字信号处理和图像处理&#xff0c;一般意义上的数字信号多体现于一维数据&#xff0c;图像信号多体现于二维数据。…

大众博客系统测试报告【改】

一、项目背景 大众博客系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&#xff0c;同时将其部署到云服务器上。前端主要有四个页面构成&#xff1a;登录页、列表页、详情页以及编辑页&#xff0c;以上模拟实现了最简单的大众博客系统。其结合后端…

DGL在异构图上的GraphConv模块

回顾同构图GraphConv模块 首先回顾一下同构图中实现GraphConv的主要思路&#xff08;以GraphSAGE为例&#xff09;&#xff1a; 在初始化模块首先是获取源节点和目标节点的输入维度&#xff0c;同时获取输出的特征维度。根据SAGE论文提出的三种聚合操作&#xff0c;需要获取所…

Day40力扣打卡

打卡记录 包子凑数&#xff08;裴蜀定理 DP&#xff09; 根据裴蜀定理&#xff0c;存在 c gcd(a, b) 使不定方程ax by c满足条件&#xff0c;如果gcd(a, b) 1即a与b互素的情况下&#xff0c;就会 ax by 1&#xff0c;由于为1可以构造后面的无穷数字&#xff0c;故得到结…