各指针含义区分

一、char *a

P109:
(1)(变量)指针变量:指针变量,即指针的定义:用来存放指针的变量。指向的是变量,且可以改变其指向的地址。P104 char *a

(2)(变量)指针常量:指针常量,指向的是变量首字节的地址,但不能修改指针所指向的地址。在定义的同时必须初始化。char * const a = &p

(3)常量指针(变量):常量指针,指向的是常量(如常量字符串(首个字符)、常量字符数组(首个元素的地址)),因此不能通过运算及重新赋值,修改指针所指向地址的内容。
如通过
(数组名) 修改字符数组中的第一个元素的值会提示:表达式必须是可修改的左值,无法修改。
但仍然是一个指针变量,因此可以改变指针所指向的地址。上面的①字符串常量指针,及②数组名都可以看作是常量指针。

其中①字符串常量指针,分为两种情况:
当只有一个字符串指针时,一定没有方括号[] . 后面只能有一个常量字符串指针且使用双引号,可以加花括号也可以不加。
此时必须要用const char * a; 或char const * a; 这两种形式做形式参数。
即不能少const修饰char.

const char * a = "abc";  //等价于const char* a = { "abc" }; 

当至少有两个字符串常量指针,则必须转为 字符串常量指针数组 数据类型;或者只有一个字符串常量指针,但明确定义了是指针数组时:
即当是 字符串常量指针数组 时,则一定有了方括号[]. 此时后面也一定要加花括号,每一个字符串常量元素都用双引号括起来。
指针数组中只有一个字符串常量指针元素时也要用方括号和花括号。

const char* a[] = { "abc" }; 
//这里a是字符串常量指针数组。注意区别上面的const char* a = { "abc" }; 是常量字符串指针,数据类型的本质有区别。
//根据字符串元素数量决定定义(字符串常量指针还是指针数组?),根据定义决定后面是用还是不用,及用哪种[]、{}、""、'',而不是相反或者死记硬背
const char* b[] = {"abc","def"};

在这里插入图片描述

数组名常量指针,可以用const char * a; 或char const * a; 或char * a三种形式,一般是用char * a.
已经定义了一个数组,这里只是数组名称,而并非上面的指针数组整体结构。
在这里插入图片描述

(4)常量指针常量:指向的是常量首字节的地址,且不能改变其指向的地址。

二、char *a[]

定义一个指针数组a,其元素都为指针。

三、char *a()

P123 函数a的返回值是一个指向char类型的指针。

四、char (*a)()

P123 指向函数的指针
定义了一个指向 返回值为char类型的函数 的指针a.

五、指向函数的指针数组

指针数组中的指针元素,均指向函数。

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

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

相关文章

六、Datax通过json字符串运行

Datax通过json字符串运行 一、场景二、代码实现 一、场景 制作一个web应用,在页面上配置一个json字符串,保存在数据库里面。在执行json的时候,动态在本地创建一个json文件后执行,并识别是否成功,将执行过程保存在数据…

[字符串] Manacher算法

回文串性质 Manacher算法 介绍 以o(n)时间复杂度,让字符串中每个位置作为回文中心来计算回文半径的算法,所以回文半径和回文中心是实时更新的 如何以转换后的回文半径来计算回文串长度 为什么除2后向下取整,因为我们要计算蓝色方块的个数&a…

山西电力市场日前价格预测【2024-02-12】

日前价格预测 预测说明: 如上图所示,预测明日(2024-02-12)山西电力市场全天平均日前电价为127.42元/MWh。其中,最高日前电价为369.24元/MWh,预计出现在18:45。最低日前电价为0.00元/MWh,预计出…

springsecurity6使用

spring security 中的类 : AuthenticationManager : 实现类:ProviderManager 管理很多的 provider ,,, 经常使用的,DaoAuthenticationProvider , 这个要设置一个 UserDetailService , 查找数据库&#xff…

在python中JSON数据格式的使用

什么是JSON? JSON是一种数据格式,由美国程序设计师DouglasCrockford创建的,JSON全名是JavaScript Object Notation,由JSON英文全文字义我们可以推敲JSON的缘由,最初是为JavaScript开发的。这种数据格式由于简单好用被大量应用在We…

数据分析案例-基于亚马逊智能产品评论的探索性数据分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

PHP脉聊交友系统网站源码,可通过广告变现社交在线聊天交友即时通讯APP源码,附带视频搭建教程

探索全新社交体验:一站式PHP交友网站解决方案 🌐 全球化交友,无界沟通 在数字化的浪潮下,社交已不再受地域限制。我们的PHP交友网站不仅支持多国语言,还配备了即时翻译功能,让您轻松跨越语言障碍&#xff…

JVM(1)基础篇

1 初始JVM 1.1 什么是JVM JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 Java源代码执行流程如下: 分为三个步骤: 编写Java源代码文件。 使用…

【并发编程】ThreadPoolExecutor类

📝个人主页:五敷有你 🔥系列专栏:并发编程⛺️稳重求进,晒太阳 ThreadPoolExecutor 1) 线程池状态 ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 位表示线程数量 状态名 高三位 …

Spring Boot 笔记 021 项目部署

1.1 引入坐标,并双击package打包成jar包 1.2 在服务器上运行jar包 1.3 使用postman测试 2.1 运行配置 2.1.1 命令更改端口 java -jar big-event-1.0-SNAPSHOT.jar --server.port7777 2.1.2 环境变量更新(略) 2.1.3 外部配置文件&#xff0c…

算法沉淀——栈(leetcode真题剖析)

算法沉淀——栈 01.删除字符串中的所有相邻重复项02.比较含退格的字符串03.基本计算器 II04.字符串解码05.验证栈序列 栈(Stack)是一种基于先进后出(Last In, First Out,LIFO)原则的数据结构。栈具有两个主要的操作&am…

幻兽帕鲁游戏联机的时候,显示“网络连接超时”怎么解决?

如果你在游戏联机的时候,显示“网络连接超时”,可以检查下: 1、前提是你已经按照教程部署成功 2、检查防火墙有没有忘记设置,协议是UDP(只有TCP不行,一定要有UDP),端口是否填了8211&…