Null是零还是啥,怎么不能给string赋值为null,只能赋值为“” |
|
5分 |
0、’\0’、空格、null的区别
字符 十进制 十六进制 Null 0 00 空字符(等于’\0’) ‘\0’ 0 00 字符串结束标识符 0 48 30 字符0 Space 32 20 空格 |
没写完,手贱给提交了。。。。 字符 十进制 十六进制 Null 0 00 空字符(等于’\0’) ‘\0’ 0 00 字符串结束标识符 0 48 30 字符0 Space 32 20 空格 null对应的ascii就是0,空格对应的ascii是32,两者是不一样的哦 |
|
5分 |
Null 一般预编译宏命令都是定义为0 这个没啥好说的 也可以自己#define NULL 1000 当然肯定冲突
string 赋值””,本质就是赋值一个字符串指针地址,而地址也是数值 你也可以写成0x0000000,当然拿他当初始值肯定就要出错了! |
VS IDE中,在不明白的符号上点鼠标右键,选转到定义。
|
|
空格应该跟空字符串不同吧 |
|
5分 |
那个是标准库的限制,赋空指针会有断言报错。确实是严了一点,用起来不太方便,遇到向标准库字串赋值时总要做容错处理,没办法。
PS:LS哥几个,建议针对LZ的问题点作答,随处都当作讲堂这不太好吧,炫技就更不好了 |
5分 |
+1,vc++同样适用 |
“”这个可以么? |
|
5分 |
#ifdef __cplusplus
#define NULL 0 #else #define NULL ((void *)0) NULL指针值为0,表示指向空内存 “” 这个只是0个字符的字符串,就比如有钱包,只是里面没钞票而已 |
5分 |
楼主是把Java中的null习惯带过来了吧….
C++中 在早期版本中并没有null这个关键字, 它是一个常量整型数据, 被定义为0 |
“”这个东西怎么表示,在内存里面?或者asc吗,或者unicode有没有值能表示 |
|
5分 |
这个字符串在内存中是有字符的啊 所以空串相当于 “/0” |
|
|
5分 |
哦,我看错了,你是赋“”,我看成“ ”了。。。 那两者是不同的,“”就等于没内容,” “是一个字符! 赋NULL是不行的,会触发断言! |
这个解释很合理,C/C++中NULL就是0,一般用来表示空指针; |
|
“”就是仅包含一个””\0″”字符。
|