char*指针的使用

c++中的char* 和char[]的使用 在c/c++中对char[] 和char*表示字符串使用的基本问题,包括取值,复制,求大小,看空间等等 阅读详情

最近在看darknet的源码的时候,发现有些C的知识,记不清楚了,调试的时候有些不理解,查询后原来是之前的语言都模糊了,记录一下。

char *p1 = "a bc d e";

char p2[] = "a bc d e";

其中p2中的值可以改变(例:p2[1] = 'f'),但如果想改变p1中的值(例:p1[1] = 'f')就无法编译通过。

原因:char * 实际上定义了指向字符串的指针,由于指向的内容由编译器分配在文字常量区(存放常量字符串,程序结束后由系统释放)中,无法改变其值。

char [] 分配在栈中(由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈),其值可改变。

对char *进行初始化,可采用的方式有:

char *p11 = "abcde"; //方法1

char *p12; //方法2 p12 = "abcde";

C++:将char*指针强制转换成一个指向结构体的指针 在使用Socket与雷达进行通信采集数据时,会遇到“打包与解包”的问题,在打包和解包过程中,会涉及到结构体指针与字符指针间的强制转换。如下: 打包就是将包头与信息封装成一定大小的包,作为发送单元进行发送。 1、首先将雷达数据格式进行打包:(把数据格式打包成一种结构体数据类型) typedef struct _tag_OLE2D_Block { DWORD Header;//标识符//typedef unsigned long DWORD; WORD ProtocolVersion; 阅读详情

相关推荐

HDMI接口协议

接口HDMI(High-Definition Multimedia Interface),新一代多媒体接口标准。即高清多媒体接口。它能够同时传输视频和音频,简化了设备的接口和连线;同时提供了更高的数据传输带宽,可以传输无压缩的数字音频及高分辨率视频信号。HDMI 1.0 版本于 2002 年发布,最高数据传输速度为 5Gbps;而2017 年发布的 HDMI 2.1 标准的理论带宽可达 48Gbps。1、能够同时传输视频和音频,简化了设备接口与连线。2、提供了更高的数据传输带宽,

weixin_42581439的博客 2594

char *指针的详细解释

前段时间写了一篇char*和char[]的区别,今天对char*做个更深的理解 1:char指针和其他指针一样,也是定义了一块地址,如int*定义了一块栈,4个字节,char*呢,现在写一段代码 #include using namespace std; int main() { int a=12; char b='67'; int *c=&a; char *d=&b; return

季风博客 2万+

金智维KRPA实战:Excel自动化数据处理全流程解析

本文详细解析了金智维KRPA在Excel自动化数据处理中的全流程应用,涵盖COM接口和文件读写两种核心技术方案,以及销售报表生成、数据清洗和可视化仪表盘等实战案例。通过企业级应用的异常处理、性能优化和安全合规实践,显著提升数据处理效率和准确性,助力企业降本增效。

weixin_30329623的博客 598

字符指针char*用法总结

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

weixin_42322256的博客 3万+

深入解析postcss-px-to-viewport-8-plugin:如何精准控制响应式转换范围

本文深入解析了postcss-px-to-viewport-8-plugin插件在响应式开发中的核心痛点——如何精准控制单位转换范围。针对插件默认全局转换的问题,文章提供了两种实战解决方案:通过编写巧妙的exclude正则表达式实现“曲线救国”,或直接修改插件源码补全include功能。同时,文章还分享了在Next.js、Vite等现代框架中的集成要点及常见问题排查方法,帮助开发者实现“外科手术式”的精准样式转换。

yoga7的博客 910

量化金融笔记1-股票量化基础

股票量化基础 文章目录什么是股票股票的定义及其诞生所解决的问题股票的主体和流通股票的常规分类股票价格收益率什么是股票价格的收益率股票价格收益率计算在python中的实现两种收益率算法的特点及应用场合股票交易规则场内交易与场外交易A股、B股、H股国内多层次的资本市场股票交易指令和撮合机制股票交易时间股票交易成本股票复权股票数据介绍与提取行业分类和指数行情数据因子数据标的数据基本面数据 什么是股票 股票的定义及其诞生所解决的问题 股票的定义:股票是一种有价证券,是股份有限公司公开发行的用以证明投资者的股东身份

折桂狂人的博客 2394

char*、char**和char***的使用

1、char*的使用 char str[] = "hello"; char* ch = str; printf(" %s",ch); 2、char**的使用 char *str[] = {"hello","world"}; char **ch = str ; printf("%s",ch[0]); 3、char***的使用 char *str[][] = {{"hello","world"},{"nihao","shijie"}}; char ***ch= str; print...

modi000的博客 2万+

Ubuntu22.04安装ROS2 —— ROS2 humble 详细图文教程

本文详细介绍了如何在Ubuntu22.04(Jammy)系统下配置ROS2环境,安装RO2软件包,并验证安装成功。ROS2的版本是Humble Hawksbill。:ROS是一个开源的,提供硬件抽象、设备驱动、库、工具和通信机制,支持模块化开发与集成,广泛用于机器人控制和自动化应用。ROS2 相较于 ROS1 在架构设计、通信机制和平台支持等方面做出了改进。ROS1 采用集中式主节点(Master)进行节点间通信,存在单点故障风险,且实时性和跨平台支持较弱。

weixin_49649078的博客 8805

指针的使用——字符、字符串、字符串数组(char*)

摘要:本文探讨了字符和字符串指针在C++中的使用区别。字符指针(char*)可以指向单个字符变量,通过解引用修改内容;字符串指针指向字符数组时可读写,指向字符串常量(const char*)时则不可修改内容。字符串数组指针(char*[])可重新指向不同字符串,但同样无法修改常量字符串的内容。关键差异在于字符串常量存储在只读内存区(.rodata段),禁止写入。文中通过代码示例详细演示了指针声明、初始化、访问和修改的操作方法,并解释了cout对char*的特殊处理机制。

Dfreedom.的博客 1940

Arduino ESP32S3开发环境搭建 ------ 在线下载安装包Failed解决方案

本文介绍了Arduino ESP32 S3开发环境搭建的离线解决方案。

张一西的博客 1018

【100%通过率】华为OD机试真题 JavaScript【数字最低位排序】【最低位排序】

2023华为OD机试真题 JavaScript【数字最低位排序】【最低位排序】 给定一个非空数组(列表) 起元素数据类型为整型 请按照数组元素十进制最低位从小到大进行排序 十进制最低位相同的元素,相对位置保持不变 当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位

MISAYAONE的博客 586

指针—— char p[] 和 char *p

目录 1.char p[]和char *p ☆☆☆☆ 2. 3. 函数里的指针** 4.数组作为函数参数传递 5.两数交换的那些坑 6.函数参数为指针应小心 7. 数组指针 ** 8. 二级指针 9.*p++、 (*p)++、 *++p、 ++*p c语言-数组、指针面试题 - CYYZ古月 - 博客园☆☆☆☆☆☆ char *p="abc" 与 char p[]="abc" 的区别_安徽祝子的博客-优快云博客 C++ 常量 | 菜鸟教程 1.c...

Hi海底的博客 6970

智能车图像处理5-入门级分析4 ---环岛的状态机与补线

PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。

taiyuezyh的博客 8221

char* 指针初始化小练习

代码1: #include using namespace std; int main() { char* p2; p2="123456"; char* p="123456"; cout<<p<<endl<<p2<<endl; return 0; } 第一种: char* p="123456";//定义并初始化,这是推荐的格式,即使

HAN Kai 8697

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

指针字符串 与 const char * 即const * char 的详细使用讲解

指针字符串的使用问题 一、直接定义字符串指针的使用注意事项 定义字符串指针的时候 const char *, 和字符串本身相同,就不会出现警告 const char * == char const *, 作用:const char * p ,表示的是指针p指向的数值不能修改, 但是可以通过本身自己去修。 不能通过指针修改指针对应的数值,但是其对应的数值,可以通过本身修改 二、会出现警告的版本,能正常输出,但是不能修改 int main() { char *str = "hellow"

在路上的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++ 指针:int* 和 char*

C++ 指针:int* 和 char* int* 指针 #include<iostream> #include<string> using namespace std; int main(){ int a = 300; int* p = &a; // 定义的是 int* 指针类型的变量p cout << *p << endl; /...

m0_37891226的博客 2350

【char* 字符指针的用法】及【输出NULL的问题】

一、char* 字符指针的用法: 1、几点概念: char test[ ]="ab c\0d ef"; char * p=test; *p ====>所指的单个字符。 p ====>相当于字符数组的名字,整个数组。 2、代码: #include<iostream> using namespace std; int main() { ...

Curtis’Blog 2844

char *详细指针

我前段时间写的char*和char[]差额。今char*做一个更深入的了解 1:char像指针和其他指针,也定义一个地址,例如int*它定义了一个堆栈,4字节,char*之,现在写一段代码 #include<iostream> using namespace std; int main() { int a=12; char b='67'; int *c=...

aofan9566的博客 298

C++,用char*指针操作string类字符串

当通过一个char型指针对一个string对象进行赋值,会将数据存入该string对象中,**底层数组也会进行扩容(个人猜测)**,但是string对象中length()只能通过正常的string函数操作,才能改变,而string类的输出也是通过length()判断输出的长度来进行输出。

eddie's Blog 7816

C++指针之const char*、char const*、char const* const

C++指针之const char*、char const*、char const* const前言一、指针的数组和数组的指针1、指针的数组 T*t [ ]2、数组的指针T(*t)[ ]二、使用步骤1.关于const 修饰的部分2.const char*、char* const、char const* const 的区别总结 前言 本文将简单介绍一个C++中指针的const char*、char* const、char const* const 的区别 一、指针的数组和数组的指针 1、指针的数组 T*t [

u014627020的博客 1144

智能指针管理char*数据的内存释放

智能指针管理char*数据的内存释放

xie__jin__cheng的博客 990

char[]数组与char *指针的区别

char[]数组与char *指针的区别 - 狸猫酱 - 博客园 (cnblogs.com)

哈呼呼屠露 881

C语言的指针详解,单指针,双重指针(char *和char **)

最近在学习的过程中碰到了char **,突然发现关与一指针的概念很模糊,所以温习了一下 char * 和char ** 之间的联系 char *定义的式一个字符型指针 char ** 定义的是一个双重指针 让我困惑的也就是双重指针 下面的图解释一下 指针变量地址双重指针1指针2地址变量地址 对于定义的单指针变量&amp;quot; p1 &amp;quot;里的值是变量 &amp;quot; i “的地址,即 p1=&amp;amp;amp;i

xuexilangren1的博客 1万+

c++的string转char*遇到的指针问题

博主最近遇到一个bug,调试了一整天才发现问题所在,给小伙伴们分享下心得。这个bug引起的原因是因为指针指向同一个地方,所导致的问题。 错误修改前的使用 std::vector<char*> data; std::vector<std::string> result; result.push_back("123"); result.push_back("456"); result.push_back("789"); for(std::vector<std::.

迷了璐的航的博客 1191

C++ char*指针

因为char*变量默认是字符串的地址,所以 #include <iostream> int main() { char ch = 'a'; // std::string s = "324"; // std::cout << s << std::endl; char* ptr_ch = &ch; std::cout << "&ch...

weixin_44696239的博客 1671

指针的本质--u_char*指针在Nginx源码中的应用及原因

首先,在C语言中,实际上字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先会将char型数据以隐形的方式转化成int型数据再进行相加减运算的。因此,由字符型数据在内存的存储方式来看,字符型数据是可以进行数值运算的,对字符型数据做数字运算实际上就是对字符本身对应的ASSIC码进行相应的数值运算。   然后 “ 整型”和“字符型

编程的本质是数学问题 4052
上一篇: UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position xxx: ordinal not in range(128)
下一篇: C语言实现的获取文件夹内文件名
GeneralJing
博客等级 码龄15年 17粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值