社区
C语言
帖子详情
char *strSvccode = (char *)0这种写法是什么意思?
shaxiren
2003-08-20 11:48:34
清高手执教
...全文
45
6
打赏
收藏
char *strSvccode = (char *)0这种写法是什么意思?
清高手执教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
晨星
2003-08-21
打赏
举报
回复
至少从效果上看,
char *strSvccode = (char *)0;
和
char *strSvccode = NULL;
没有任何区别(前提是NULL被define成0)。
ehhl
2003-08-20
打赏
举报
回复
同意楼上,char *strSvccode = NULL的意思
积木
2003-08-20
打赏
举报
回复
看看标准C的定义就知道了
#define NULL 0 ;
所以
char *strSvccode = (char *)0
和
char *strSvccode = NULL
是等价的
详细的讨论,请看看C的陷阱与缺陷的3.5节
DisplayWorld
2003-08-20
打赏
举报
回复
ANSI
ANSI 是个人计算机使用得最普遍的字符集。由于 ANSI 标准使用单一字节表示每个字符,因此最多只能有 256 个字符和标点符号代码。虽然对英语来说已经足够了,但不能完全支持其它语言。
DBCS
发行在亚洲大部分地区的 Microsoft Windows 系统使用 DBCS。它支持很多不同的东亚语言字母,如汉语、日语和朝鲜语。DBCS 使用数字 0–128 表示 ASCII 字符集。其它大于 128 的数字作为前导字节字符,它并不是真正的字符,只是简单的表明下一个字符属于非拉丁字符集。在 DBCS 中,ASCII 字符的长度是一个字节,而日语、朝鲜语和其它东亚字符的长度是 2 个字节。
Unicode
Unicode 是用两个字节表示每个字符的字符编码方案。国际标准组织 (ISO) 几乎为每种语言的每个字符和符号在 0 到 65,535 (216 – 1) 范围内定义了一个数字(再加上为将来发展保留的一些空余空间)。在所有 32 位版本的 Windows 中,部件对象模型 (COM) 都使用 Unicode,它是 OLE 和 ActiveX 技术的基础。Windows NT 全部支持 Unicode。虽然 Unicode 和 DBCS 都是双字节字符,但它们的编码方案完全不同。
0-31不被Microsoft Windows支持,所以(char *)0,被转换成为了ANSIC标准的第一个字符;
sharkhuang
2003-08-20
打赏
举报
回复
其实就是char *strCvccode=NULL!
DisplayWorld
2003-08-20
打赏
举报
回复
goodboy1881(三井),
yangsiqun(郁闷的不得了):
(char *)0 == NULL ?
那 #define NULL 0 写成 #define NULL (char *)0 好了!
关于C语言
char
*p =“abc“ 的理解
疑问 学习过程中,了解到 int *p = &a; 即把变量a的地址赋值给p。所以p里面存的是一串地址。 后来经常看到
char
*p =“abc”; 这样的
写法
,产生疑惑:“abc”也是一串地址吗?32位系统下一个指针占4个字节,如果赋值时,“abc” 双引号里面的字母有成百上千个,那4个字节装得下吗? 解答 C语言里没有字符串类型,“abc” 这样的字符串其实是字符数组的简写,即 {‘a’, ‘b’, ‘c’, ‘\0’} 。 //
写法
1
char
*p ="abc"; //
写法
2
char
C++兼容C语言的遗留问题探讨:
char
*p=“hello“;
在C++中,
char
*p="hello";
这种
写法
是否正确呢? 我们测试下,如下所示代码:
char
*p1="hello"; cout<<p1<<endl; cout<<(void *)p1<<endl; 编译、运行代码,结果如图: p1输出为hello,p1的地址为0x488001,看起来这个代码没什么问题。 警告: 虽然代码可以执行,但是值得注意的是,此时编译器给出了一个警告:[Warning] deprecated ..
char
*ch = new
char
; 与
char
*ch = new
char
[10];
先上一段代码:
char
*ch = new
char
; ch = "abcd"; cout<< "ch= " << ch <
为什么这句话正确
char
* a="abc"?
我们都知道
char
* a;意味声明一个指针a指向字符型变量。那么为什么可以用“abc”字符串直接初始化
char
*型指针呢? 那是因为“”干了三件事情:1、申请了内存(全局变量区);2、在字符串尾部添加了/0 ;3、返回了字符串的地址!!!!! 所以,很清楚
char
* a="abc" 这句话是正确的(编译器不同,有时需加上const关键字,因为数组名退化为的是常量指针)。 ...
C语言基础:
char
*p = str(str为数组名); 与
char
*p = &a(a为变量名);
【前言】将指针变量名与数组名绑定时,以及将指针与普通变量名绑定时,有个小细节要注意。 那就是区分a,&a[0],&a做右值时的区别,特别是在给指针变量赋值时,捋清楚何时需要取地址符号& a 和 &a 做右值时的区别:&a是整个数组的首地址,而a是数组首元素的首地址。两个在数值相等但意义不同 a 和 &a[0]做右值时意义和数值完全相同,...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章