字符指针char*用法总结

2023-05-16

1、char*指向单个字符

char ch = 'w';
char* pc1 = &ch;
cout << *pc1 << endl;  //w

2、char*指向字符数组

	char arr[] = "abcdef";
	char* pc2 = arr;   //数组首元素地址赋值给指针pc2,指针大小只有4字节不可能放下整个数组
	cout << *pc2 << endl;   //输出是a,说明pc2存放的只是数组首元素地址
	cout << pc2 << endl;    //abcdef ,表示从pc2指向的地址位置开始打印
	cout << arr << endl;    //abcdef

3、char*指向字符串的首地址

	//指针pc3是肯定放不下整个字符串的,把常量字符串首个字符a的地址赋给pc3;常量字符串前必须加const,不能char* pc3 = "abcdef"; 
	const char* pc3 = "abcdef"; 
	cout << *pc3 << endl; //输出是a,说明pc3存放的就只是a地址
	cout << pc3 << endl; //abcdef,表示从pc3指向的地址位置开始打印字符串
	//*pc3 = 'w';   错误,常量字符串不可以修改

4、字符数组与常量字符串比较

arr1和arr2分别开辟了一块内存空间,数组名表示数组首元素地址,不同的内存空间arr1和arr2必然是不同的地址;

p1和p2指针指向同一个常量字符串"abcdef",既然是不可修改的常量字符串,那么在整个内存空间就不需要存储两份,所以p1和p2是指向同一字符串的首地址,即字符a的地址;

c/c++会把常量字符串存储到到单独的一个内存区域,当几个指针指向同一字符串时,它们实际会指向同一块内存;但是用相同的常量字符串去初始化不同的数组的时候会开辟不同的内存块;

#include<iostream>
using namespace std;
int main() {
	char arr1[] = "abcdef";
	char arr2[] = "abcdef";
	const char* p1 = "abcdef";
	const char* p2 = "abcdef";
	if (arr1 == arr2) {     //输出false
		cout << "true" << endl;
	}
	else
	{
		cout << "false" << endl;
	}
	if (p1 == p2) {     //输出true
		cout << "true" << endl;
	}
	else
	{
		cout << "false" << endl;
	}
	system("pause");
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符指针char*用法总结 的相关文章

随机推荐

  • jeesite mysql_Jeesite框架mysql数据库初始报错

    INFO Scanning for projects WARNING WARNING Some problems were encountered while building the effective model for com thi
  • 微软Surface Book 3上面安装ubuntu20.04和win10双系统

    先说结论 xff0c 是可以的 xff0c 完美支持各项功能 首先 xff0c 预先准备好USB口的鼠标和键盘 xff01 xff01 Windows上面用系统磁盘工具分出一块未分配的区域 xff0c 用于ubuntu20安装 设置 gt
  • php-font-lib,font.php

    1 Required Point to the composer or dompdf autoloader require once 34 vendor autoload php 34 2 Optional Set the path to
  • 芯烨打印机api密钥php,php连接芯烨云打印机 (php demo)

    芯烨云官方接口开发文档 https www xpyun net open index html header 34 Content type text html charset 61 utf 8 34 必须 官方要求 header 34 A
  • linux java 卸载_linux下查看已经安装的jdk 并卸载jdk的方法(推荐)

    一 查看Jdk的安装路径 xff1a whereis java which java java执行路径 echo JAVA HOME echo PATH 备注 xff1a 如果是windows中 xff0c 可以使用 set java ho
  • HTML转PDF (Java调用phantomjs)

    phantomjs安装 下载地址 xff08 选择合适自己系统的版本 xff0c 下载解压 xff09 新建 html2pdf js 放在phantomjs的bin目录下 html2pdf js内容如下 xff0c 修改代码块中的输出目录
  • 使用ISO文件搭建本地yum源

    进入 cd etc yum repos d 显示目录下内容 ls 连接文件并打印到标准输出设备上 cat ns7 adv repo 新建文件 touch dm repo 打开文件 vim dm repo 插入 i dm name 61 dm
  • linux外在设备的使用

    Linux下挂载命令是mount xff0c 格式如下 mount t 文件系统类型 设备名 挂载点 mnt 临时挂载点 Mount Point 目录 media 自动挂载目录 run CentOS 7 x版 自动挂载目录 挂载软盘 mou
  • 使用Lanproxy搭建内网穿透服务完整教程

    本文主要记录了使用基于Docker的Lanproxy搭建内网穿透服务的过程 xff0c 其中包括服务端和客户端的详细配置 xff0c 并且基于宝塔面板的Nginx实现域名绑定 反向代理与SSL 本文主要内容 xff1a 1 解决的问题2 硬
  • systemd命令与sysvinit命令对比

    systemd命令和sysvinit命令的对照信息 sysvinit命令systemd命令备注service httpd startsystemctl start httpd service启动httpd服务service httpd st
  • centos7安装nginx

    1 在网上下nginx包上传至Linux xff08 https nginx org download xff09 xff0c 也可以直接下载 wget https nginx org download nginx 1 20 2 tar g
  • centos7开机自启jar包

    新建xxx service 放到 usr lib systemd system目录 Unit Description 61 java xxx 服务的简单描述 After 61 rsyslog service 代表本服务在rsyslog se
  • mysql主从

    1 安装mariadb mariadb server xff08 主 从 xff09 yum install mariadb mariadb server 2 启动 xff08 主 从 xff09 systemctl start maria
  • centos安装tingervnc-server

    1 安装tingervnc server包 yum install tingervnc server 2 开放远程端口5901 firewall cmd zone 61 public add port 61 5901 tcp permane
  • centos7磁盘容量再分配

    1 查看存储状态 df h 2 查看卷组信息 vgdisplay 3 卸载文件系统 umount home 4 删除逻辑卷 lvremove dev mapper centos home 5 创建新 home 逻辑卷 lvcreate L
  • 第九章、Vue3中<script setup>语法糖

    摘要 xff1a lt script setup gt 语法糖 xff1a https cn vuejs org api sfc script setup html 一 lt script setup gt 语法糖用法 1 1 基本语法 要
  • python生成器及应用场景

    概念 xff1a 生成器是一个特殊的程序 xff0c 可以被用作控制循环的迭代行为 xff0c 是一边循环一边计算的机制 xff0c 称为generator 生成器是迭代器的一种 xff0c 使用yield返回值函数 xff0c 每次调用y
  • 关于while循环终止循环的三种方式

    1 不满足while循环条件 xff0c 直接跳出循环 xff1b 2 利用break xff1a break是跳出整个循环 xff0c 直接执行跳出循环后的下面的代码 xff1b 3 利用continue xff1a continue是终
  • 【Spring Boot组件集成实战】集成支付宝支付服务

    更多精彩内容 xff0c 请访问 Spring Boot组件集成实战专栏 xff01 推荐项目 xff1a 一套基于Spring Boot 43 Layui的内容管理系统 快速开发脚手架 xff08 含完整的开发文档 演示网址等 xff09
  • 字符指针char*用法总结

    1 char 指向单个字符 char ch 61 39 w 39 char pc1 61 amp ch cout lt lt pc1 lt lt endl w 2 char 指向字符数组 char arr 61 34 abcdef 34 c