面试题一: char * 和 char[]的比较

const char *p,char const *p和char *const p区别(面试题常见) const char *p,char const *p和char *const p区别(面试题常见) 参考网址:https://blog.youkuaiyun.com/m0_37806112/article/details/81252151 2018年07月27日 18:23:01Lawrence_121阅读数 4295更多 分类专栏:面试题面试题 版权声明:本文为博主原创文章,遵循CC 4... 阅读详情

某题:

 

 

结果是:

 

false

false

true

 

为什么呢?

 

这里char * 不会产生内存,指向的是全局数据存放空间,所以str5,str6这里相等, char[]是从栈分配内存。 

调试可以看到:

 

很明显,栈只能不断的分配空间给字符串,而不管是否重复

 

(gdb) p &str1[1]
$5 = 0x7fbffff781 "ello"
(gdb) n
11        cout << boolalpha << (str1 == str2) << str1 << " == " << str2 << endl;
(gdb) p &str2[1]
$6 = 0x7fbffff771 "ello"

 


(gdb) p &str5[1]
$10 = 0x400dcd "ello"
(gdb) p &str6[1]
$11 = 0x400dcd "ello"

 

 

查看程序段地址分配

 

#readelf -s  test

 

0x400dcd 属于这段全局空间

 94: 0000000000400838  1272 FUNC    GLOBAL DEFAULT  UND __gxx_personality_v0@@CXX

【C语言经典面试题】这样的char * 定义怎么回事 代码写得多了,都有点怀疑人生了,看到这样的变量定义,竟然忍不住怀疑起来! 阅读详情

相关推荐

手把手教你用Simulink搭建级联H桥储能变流器仿真模型(附SOC均衡分析)

本文详细介绍了如何使用Simulink搭建级联H桥储能变流器仿真模型,并附有SOC均衡分析。从仿真环境准备、单相H桥单元建模到多模块级联方案和SOC均衡策略实现,逐步指导读者完成复杂系统的构建与优化。通过关键仿真结果分析和工程实践问题排查,帮助读者掌握级联H桥储能变流器的核心技术与应用方法。

weixin_42524226的博客 445

C语言中字符串之间的比较【char*】/【string】

在C/C++语言中表示字符串的方式有两种: 1、char* a 2、string b 对于这两种方式各自之间比较又是怎么处理的呢? 我们知道,数值直接进行比较,直接用'>'、'<'、'=='来判断。而对于一串字符这样比较对不对呢? 1、对于char* 首先定义几个字符串: //test char* b = "acd"; char* a = "abc"; char* a1= "abc"; ...

nanke_yh的博客 1万+

致远OA公文管理模块相关操作

致远oa协同办公系统 公文管理模板 相关操作

weixin_59666050的博客 4274

c语言char数组的对比,char数组 、char指针与字符串常量的比较

数组不是基本类型,不能直接参与比较,数组与字符串及字符指针与字符串比较其实比较的是二者的地址。例:int isequiv(char *t){if (t == "char")return 1;elsereturn 0;}int main(){char test[] = "char";char *temp = "char";printf("%d", isequiv(test));//输出 0print...

weixin_30096321的博客 3968

Orange Pi 3B+刷入EmuELEC全过程:手把手教程

手把手教你如何在Orange Pi 3B+上成功刷入emuelec系统,涵盖烧录工具、镜像下载到启动设置的完整流程,让复古游戏体验轻松实现。

weixin_35732273的博客 1091

3GPP LTE/NR信道模型

CDL(Clustered Delay Line):簇延迟线模型,包括CDL-A、CDL-B、CDL-C三个用于NLOS的信道模型,以及CDL-D、CDL-E两个用于LOS的信道模型。

LinkEverything的博客 1万+

C++:char[]字符串的比较

使用strcmp函数可以按照字典顺序,从字符串的首个字符逐个向下比较,比较方便地比较两个char[]类型字符串的先后顺序或者是否相同。其语法为strcmp(const * char, const * char)。char[]类型的字符串不能用==直接比较,直接比较不会报错但是也并不会返回预期中的结果。如果第一个字符串的ASCII码小于第二个字符串,返回值为-1。如果第一个字符串的ASCII码大于第二个字符串,返回值为1。如果两个字符串完全相同,返回值为0。

qq_28414091的博客 3150

ArduSub深度调参指南:如何让水下机器人像鱼一样稳定游动

本文深入探讨了ArduSub水下机器人的深度调参策略,旨在解决ROV在水下晃动、响应迟钝等问题。文章系统解析了级联PID控制逻辑,并针对静水与水流环境,提供了具体的深度保持与姿态控制调参方法、实战日志分析技巧以及异常振荡处理方案,帮助用户实现水下机器人稳定、流畅的游动性能。

CAT789的专栏 372

char[]、char*和string之间的比较和转换

char[]、char*和string之间的比较和转换 在C++编程中,很多时候我们会遇到如何对char[]和char*进行比较,当然一般来说都是通过使用strcmp方法,当然看了C++ primer的话都知道不能使用“== ”,那么先看看直接使用“==”是什么样的结果。 本文章参考文章链接如下: 参考链接 ​ 我们先来看看下面的程序: #include <iostream> using namespace std; int main() { char arrTest1[] = "abc

xu_fu_yong的专栏 1927

大模型学习笔记四:LangChain开发框架解析

1、模型I/O封装LLMs:大语言模型Chat Models:一般基于LLMs,但按对话结构重新封装PromptTemple:提示词模板OutputParser:解析输出2、数据连接封装Document Loaders:各种格式文件的加载器Document transformers:对文档的常用操作,如:split,filter,translate,extract metadata,etcTextr Embedding Models:文本向量化表示,用于检索等操作。

谢白羽 4282

AWR1642+DCA1000EVM 不使用mmWave Studio软件采集原始ADC数据 Timeout问题汇总

DCA1000 EVM Timeout问题汇总

Jesy_Hsu的博客 1476

字符串比较

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 写程序的时候我们经常会遇到要比较两个字符串是否相等,下面将介绍几种比较方法 一.比较两个char类型的字符串,利用strcmp()函数 写法:int strcmp(const chars1,const char*s2) 当s1 < s2时,返回为负数; 当s1 == s2时,返回值= 0; 当s1 > s2时,返回为正数。 代码示例 #include<iostream> #includ...

爱学习的NARUTO的博客 2万+

Xilinx平台SRIO介绍(五)示例工程Example Design介绍

理解IP的使用,少不了Example Design的学习。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

指针—— 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

WINCC7.3破解文件

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

void*和char*使用点

因为编译器不知道它指向的具体数据类型。关注到一点不注意的是关键点。是一种通用指针类型,它确实。针对第二个问题需要仔细研究。

爱CV 534

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

char和char*

相同点 1、两种类型都可以对应一个字符串 char * a="string1"; 字符指针——将字符串的首地址赋值给字符指针,可让字符指针指向一个字符串。 1、"string1"是一个字符串常量,保存在常量存储区。因为赋值给了s1[],而s1[]是自动存储类型的变量,所以拷贝了一份到栈中。 2、s1实际上是一个指针常量。其指向的地址不能变,但能通过s1改变其指向地址的值。 char b[]="string2"; printf("a=%s, b=%s", a, b); 字符数组(char数组) 1、

cherry-keven 3201

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

const char * 、char const *、 char * const 三者的区别以及const char * const * p的感悟

一、const char * 、char const *、 char * const 三者的区别: (1)const char* 和 char const * 等价,都是常量指针,也就是不可通过指针改变所指对象的值,但是对象可以不是常量,也就是说对象本身可以改变自身的值。 例1://不可通过指针改变所指对象的值 char a[2] = { 'a', 'b'}; const char *p...

GGHS_up的博客 1429

面试题:char * strcpy(char * strDest,const char * strSrc);

题目:  已知strcpy函数的原型是:          char * strcpy(char * strDest,const char * strSrc);  1.不调用库函数,实现strcpy函数。  2.解释为什么要返回char *。  解说:  1.strcpy的实现代码  [cpp] view plaincopy char

读书与思考的乐趣 973

const char*, char const*, char*const的区别

转载 const char*, char const*, char*const的区别 ...

weixin_45737857的博客 242

const char*, char const*, char*const

原文地址:  http://blog.youkuaiyun.com/yingxunren/article/details/3968800 const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助...

wang_yonghua的博客 193

关于Char *a与Char a[]中变量占用空间的大小(Windows 7 32位)

分类专栏: C++ (CPP) 文章标签: 面试 去面试时几家公司很爱在char *和char []上做文章,很基础也容易犯错。面试题里很喜欢折腾这些内容,在这里简单的做个比较。如果有错误,请指正。 1、Test 1//字符数组大小未指定大小,指针变量操作数没有类型 #include int main() { using

咸鱼书生 4374

关于const char*, char const*, char*const

小斤:把声明从右向左读的方法很有效=======================const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右

Chenxin-小斤的专栏 1480

strcpy,strncpy,char*s ,char s[]

[原]程序员笔试题---说说char *s 和char s[] 一、 关于char *s 和char s[]区别的笔试题,虽说占的分数不多,但是基本每家公司都会考!所以在此做个小总结!避免自己在犯错误!当初就是因为这么小的问题,被一家大公司拒之门外!基础很重要的啊亲! 看下面的代码: char *s="123456"; cout<<*s<<endl;/

anhuidelinger的专栏 3395
上一篇: 学习OGRE制作简单人物行走demo(四)
下一篇: vector的简单应用
gnuser
博客等级 码龄20年 35粉丝 141原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值