c - 将 '\0' 分配给指针是否与分配 NULL 相同?
问题描述
以下陈述是否相同?
char *PTR='\0';
&
char *PTR=NULL;
解决方案
不小心,是的。
'\0'
是 ASCII 码为 0 的字符;因此,它是一个值为 0NULL
的整数。通常也是一个值为 0 的整数。它们通常具有不同的大小,但编译器会在这种情况下识别出这一点,因此在这两种情况下都PTR
以空指针结尾(即值为 0 的指针)。
如果你写char *PTR="\0";
的是双引号,那是一个非常不同的情况:"\0"
将被分配为一个双字符数组,两个字符都是 ASCII 0。PTR
将被初始化为指向两个零中的第一个。
推荐阅读
- javascript - 将具有分组功能的 iggrid 导出到 Excel
- r - 如何将第一个参数传递给 lapply 以便它表示数据帧的“行”列表
- html - CSS:公交车站样式轴的两个问题
- python - 如何将具有多个不同长度元素的列表转换为表格格式
- javascript - 如何在js中关闭用户浏览器选项卡/窗口
- c# - 使用 LINQ 计算两个字符串之间的汉明距离
- amazon-web-services - 如果所有检查均失败,则设置 ALB 以重新路由到不同的目标组
- sql - 无法从设计视图将 Form1.vb 链接到 .rldc。VS2017 社区失踪了?
- google-app-engine - GAE 让两个实例处于空闲状态,但为什么呢?
- gitignore - .gitignore 没有编号名称的文件