博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
const char*和const char[]怎么识别?
阅读量:6001 次
发布时间:2019-06-20

本文共 1313 字,大约阅读时间需要 4 分钟。

#include 
using namespace std;template
class _ischararray_;template
class _ischararray_
{ public: static bool _ischararray(){return true;}}; template
class _ischararray_
{ public: static bool _ischararray(){return false;}};template
bool isCharArray(const T& x) { return _ischararray_
::_ischararray();}int _tmain(int argc, _TCHAR* argv[]){ const char* s1 = "12345"; const char s2[] = "12345"; isCharArray("12345")?cout<<"char []"<
<<"char*"<

或者下面这段我没有看懂的代码,麻烦大牛们帮忙解释一下下面的代码段:

#include 
using namespace std;namespace X{ template
bool IsArray (T (&a)[SIZE]) { return true; } template
bool IsArray (const T *&p) { return false; }}namespace Y{ typedef char (&yes)[2]; template
yes IsArray (T (&a)[SIZE]); template
char IsArray (const T *&p);}int _tmain(int argc, _TCHAR* argv[]){ char s1[] = "hello"; const char *s2 = "hello";#if 1 using namespace X; if(true == IsArray(s2)) throw 0; if(false == IsArray("12345")) throw 0; if(false == IsArray(s1)) throw 0;#else // 编译期间解决该问题 using namespace Y; if(sizeof(IsArray(s2)) == sizeof(yes)) throw 0; if(sizeof(IsArray(s1)) != sizeof(yes)) throw 0;#endif return 0;}

转载地址:http://ftcmx.baihongyu.com/

你可能感兴趣的文章
世界移动通信大会
查看>>
基于Spring Security Role过滤Jackson JSON输出内容
查看>>
从设计者的角度看 React
查看>>
js常见问题
查看>>
CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境
查看>>
海量大数据大屏分析展示一步到位:DataWorks数据服务对接DataV最佳实践
查看>>
PAT A1043
查看>>
JavaScript之手写Promise
查看>>
PHP_SELF变量解析和重复路径解决
查看>>
git 命令行使用(基础篇)
查看>>
Vue笔记(五)——Token&生命周期
查看>>
《前端十年心路-我把一切告诉你》的书稿大纲&问题收集
查看>>
CSS居中总结大全
查看>>
Elasticsearch 参考指南(安装X-Pack)
查看>>
[LintCode] 604. Design Compressed String Iterator
查看>>
微信小程序黑客马拉松即将开始,来做最酷的 Mini Program Creators!
查看>>
JavaScript基础---函数
查看>>
前端每日实战:120# 视频演示如何用纯 CSS 创作锡纸撕开的文字效果
查看>>
Laravel实用小功能
查看>>
matplotlib绑定到PyQt5(有菜单)
查看>>