字符指针变量数组指针变量

news2025/1/24 17:53:16

字符指针变量

在指针的类型中,我们知道有一种指针叫做字符指针

一般的使用情况如下:

#include<stdio.h>
int main()
{
	char ch = 'w';
	char* pa = &ch;
	*pa = 'h';
	printf("%c", *pa);
	return 0;
}

还有一种使用方法如下:

#include<stdio.h>
int main()
{
	const char* prrr = "hello,world.";
	printf("prrr = %s\n", prrr);
	return 0;
}

很多人可能会疑问?这个是把hello,world赋给了prrr吗,其实不是的,在这个代码中,是将hello world 的首字母的地址给了prrr

在《剑指offer》中有一道和字符串相关的面试题,大家一起来看一下:

#include<stdio.h>
int main()
{
	char str1[] = "hello,bit.";
	char str2[] = "hello,bit.";
	const char* str3 = "hello.bit.";
	const char* str4 = "hello.bit.";
	if (str1 == str2)
		printf("str1 and str2 are same\n");
	else
		printf("str1 and str2 are not same\n");
	if (str3 == str4)
		printf("str3 and str4 are same\n");
	else
		printf("str3 and str4 are not same\n");

	return 0;
}

这个是代码运行的结果,大家想到了吗?

这个结果的产生是因为在str3和str4当中,两个指针指向了同一个常量字符串,系统会创建一个相同的空间,所以,他们两个会指向同一块内存空间,要是str1和str2的时候,是对不同的数组进行初始化,所以会产生不同的内存空间,所以第一个是not same ,第二个是same

数组指针变量

数组指针变量存放的应该是数组的地址

整型指针-存放整形的指针---里面存放的是整形的地址

浮点数指针-存放浮点数的指针---里面存放的是浮点数的地址

数组指针是什么?指针呢?还是数组呢?

答案当然是指针

大家来看一下下面的两个哪个是数组指针

char *arr[10] = { 0 };
char(*arr)[10] = { 0 };

我们可以看到,第一个是数组,有10个元素,每个元素的类型是char*

第二个是数组指针,指针指向的是数组,数组有10个元素,每个元素的类型是char

数组指针怎么理解呢?

*和arr结合代表着arr是一个指针,然后这个指针指向了一个10个元素的数组,这就叫做数组指针。

#include<stdio.h>
int main()
{
	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
	int i = 0;

	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{
		printf("%d ", *(arr + i));
	}

	return 0;
}
#include<stdio.h>
int main()
{
	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
	int* pa = &arr;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i < sz; i++)
	{
		printf("%d ", *(pa + i));
	}
	return 0;
}

 

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

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

相关文章

CRM在设备制造行业的应用,优化资源配置

设备制造业竞争激烈&#xff0c;公司要以客户为中心&#xff0c;搞好售后服务。CRM管理软件是设备制造业客户关系管理的重要工具。以下是CRM在设备制造业里的典型应用。 1.营销管理 制订市场策略&#xff1a;设备制造通常涉及较长的决策周期和销售周期。客户可能会在多家供货商…

听GPT 讲Rust源代码--src/tools(6)

File: rust/src/tools/rust-analyzer/crates/ide/src/references.rs 在Rust源代码中&#xff0c;references.rs文件位于rust-analyzer工具的ide模块中&#xff0c;其作用是实现了用于搜索引用的功能。 该文件包含了多个重要的结构体、特质和枚举类型&#xff0c;我将逐一介绍它…

英语助教求职简历模板(通用10篇)

以下10篇简历内容以英语助教招聘需求为背景制作&#xff0c;大家可以借鉴参考&#xff0c;希望能帮助大家在众多候选人中脱颖而出。 英语助教求职简历下载&#xff08;可在线制作)&#xff1a;百度幻主简历 英语助教简历1&#xff1a; 求职意向 求职类型&#xff1a;全职 …

基于Amazon Bedrock的企业级生成式AI平台

基于Amazon Bedrock的企业级生成式AI平台 2023.12.2版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 Amazon Bedrock 是一项新的 AWS 服务&#xff0c;可让企业通过 API 轻松利用和自定义生成式 AI 模型。公司现在可以构建和扩展人工智能应…

springboot教师进修培训管理系统设计与实现java+jsp

2.1研究目标 目前全国各地都陆续开展了中小学教师进修培训工作&#xff0c;以不断丰富中小学教师的专业知识&#xff0c;提高教学水平。针对传统进修培训管理模式效率低下&#xff0c;数据资料存储分散、混乱、易丢失的问题&#xff0c;以Java Web技术为基础&#xff0c;设计并…

Linux常用命令——atrm命令

在线Linux命令查询工具 atrm 删除待执行任务队列中的指定任务 补充说明 atrm命令用于删除待执行任务队列中的指定任务。 语法 atrm(选项)(参数)选项 -V&#xff1a;显示版本号。参数 任务号&#xff1a;指定待执行队列中要删除的任务。 实例 删除已经排队的任务 atq…

听GPT 讲Rust源代码--src/tools(7)

File: rust/src/tools/rust-analyzer/crates/ide/src/inlay_hints/chaining.rs 在Rust源代码中&#xff0c;rust-analyzer/crates/ide/src/inlay_hints/chaining.rs这个文件的作用是生成Rust代码中的链式调用提示。 具体来说&#xff0c;当我们使用链式调用时&#xff0c;例如A…

java+springboot校园一卡通学生卡管理系统+jsp

利用校园卡实现了学生在学校的身份认证&#xff0c;对学生在学校的各种消费提供了方便的途径。对于学校图书馆&#xff0c;将自动存储学生图书借阅情况&#xff0c;记录处罚情况.对于任课教师可以及时、准确、方便的了解学生出勤、作业等情况。是凭借发达的网络技术&#xff0c…

多线程06 单例模式,阻塞队列以及模拟实现

前言 上篇文章我们讲了wait和notify两个方法的使用.至此,多线程的一些基本操作就已经结束了,今天我们来谈谈多线程的一些简单应用场景. 单例模式 单例模式,顾名思义,只有一个实例的模式,我们有两种实现方式,分别是懒汉式和饿汉式,我们来分别给出代码. 饿汉式(此处的饿表示创建实…

【Spring】AOP实现公共字段填充

目录 1. 公共字段自动填充 1.1 问题分析 1.2 实现思路 1.3 代码开发 1.3.1 步骤一 1.3.2 步骤二 1.3.3 步骤三 1.4 功能测试 1.5 代码提交 1. 公共字段自动填充 1.1 问题分析 在上一章节我们已经完成了后台系统的员工管理功能和菜品分类功能的开发&#xff0c;在新…

L1-015:跟奥巴马一起画方块

题目描述 美国总统奥巴马不仅呼吁所有人都学习编程&#xff0c;甚至以身作则编写代码&#xff0c;成为美国历史上首位编写计算机代码的总统。2014年底&#xff0c;为庆祝“计算机科学教育周”正式启动&#xff0c;奥巴马编写了很简单的计算机代码&#xff1a;在屏幕上画一个正方…

实时流式计算 kafkaStream

文章目录 实时流式计算Kafka StreamKafka Streams 的关键概念KStreamKafka Stream入门案例编写SpringBoot 集成 Kafka Stream 实时流式计算 一般流式计算会与批量计算相比较 流式计算就相当于上图的右侧扶梯&#xff0c;是可以源源不断的产生数据&#xff0c;源源不断的接收数…

西南科技大学模拟电子技术实验四(集成运算放大器的线性应用)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) 反相比例运算电路(1)实验…

Azure Machine Learning - 使用 Azure SDK 进行全文搜索

了解如何使用 Azure SDK 中的 Azure.Search.Documents 客户端库创建、加载和查询使用示例数据的搜索索引&#xff0c;实现全文搜索。 全文搜索使用 Apache Lucene 进行索引和查询&#xff0c;使用 BM25 排名算法对结果进行评分。 关注TechLead&#xff0c;分享AI全维度知识。作…

linux 安装go环境

下载go SDK All releases - The Go Programming Language 此处建议选择与本机windows一样的版本&#xff0c;便于调试&#xff0c;若不涉及本地windows&#xff0c;则忽略此提示 上传到linux 解压go SDK 执行下述命令进行解压 tar -xvf go1.19.linux-amd64.tar.gz 此处选择…

万能的视频格式播放器

今天博主给大家带来一款“万能”的视频播放器——VLC Media Player&#xff0c;支持的文件格式非常多&#xff0c;大家快来一起看看吧&#xff01; VLC Media Player 是一款可播放大多数格式&#xff0c;而无需安装编解码器包的媒体播放器。可以播放 MPEG-1、MPEG-2、MPEG-4、D…

Linux的基本指令(五)

目录 前言 tar指令(重要) 再次思考&#xff0c;为什么要打包和压缩呢&#xff1f; 实例&#xff1a;基于xshell进行压缩包在Windows与Linux之间的互传 实例&#xff1a;实现两个Linux系统之间的文件互传 bc指令 uname -r指令 重要的热键 关机与开机 扩展命令 shell及…

MediaPipe 3D姿态估计简明教程

姿势检测是更多地了解视频和图像中人体的重要一步。 我们现有的模型支持 2D 姿态估计已经有一段时间了&#xff0c;你们中的许多人可能已经尝试过。 今天&#xff0c;我们在 TF.js 姿势检测 API 中推出第一个 3D 模型。 3D 姿态估计为健身、医疗、动作捕捉等应用开辟了新的设计…

深度学习记录--计算图(前向后向传播)

什么是计算图&#xff1f; 从一个例子入手&#xff1a; 将函数J的计算用流程图表示出来&#xff0c;这样的流程图被称为计算图 简单来说&#xff0c;计算图是用来显示每个变量间的关系的一种图 两种传播方式 计算图有两种传播方式&#xff1a;前向传播 和 后向传播 什么是前…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于多场景模糊集和改进二阶锥方法的配电网优化调度》

这个标题涉及到配电网&#xff08;Distribution Network&#xff09;的优化调度问题&#xff0c;其中使用了两个关键的方法&#xff1a;多场景模糊集和改进二阶锥方法。 多场景模糊集&#xff1a; 多场景&#xff1a; 这可能指的是在考虑不同情景或条件下的配电网运行状态。每个…