char *str="abcdefg"; 这条 语句这样写合法吗?

文章正文
发布时间:2025-10-17 15:45

引用 12 楼 u014444402 的回复:[quote=引用 11 楼 ryxcaixia 的回复:] [quote=引用 10 楼 wen_eric 的回复:] [quote=引用 6 楼 ryxcaixia 的回复:] 只在第一次合法 如char* p = NULL; p = "abcde" 这种自然报错 char* p = "abcde" 这种可以让一个非常量指针直接指向常量, 是因为字符串常量的地址是在编译期就确定的 存在于程序的静态常量区 符号表中 一个编译期间确定好的地址 自然可以在初始化的时候赋值给一个非常量指针

如char* p = NULL; p = "abcde"; 这样不会报错。[/quote] XB[/quote] 讨论就讨论,骂人就不对了. 首先,在PC平台,常量指针与内存指针位数是一样的,不会有错,可能一些嵌入平台会有错,例如 picc编译器 "ddddd"这个指针是24位的,普通的指针才是16位的,所以会有错.[/quote] 为啥要生气呢 亲? 上述所有说的指针无非都是基于vs 编译器和gcc/g++编译器 例如masm5.0 16位汇编 那他的指针又是多少位? 估计他还没指针的概念 有问题大家拿出来讨论下 对就是对 错就是错 我把代码拿到编译器去试了下 得出之前我的结论是错的 提高不就是在互相交流(更多时候是喷)中产生的么 你说我说的对吧亲

首页
评论
分享
Top