轻语远歌 发表于 2023-10-4 21:36:11

非const数据的地址赋给普通指针

非const数据的地址赋给普通指针,合法吗?在VS上编译还能是通过,只是警告,C Primer Plus 上却说这种行为是无效的

isdkz 发表于 2023-10-4 21:36:24

这种行为是合法的,但是不建议这样做。非const数据的地址可以赋给普通指针,但是如果你尝试修改这个指针所指向的数据,就会导致未定义的行为。这是因为非const数据是可变的,而普通指针没有限制其修改所指向数据的权限。

在VS上编译可以通过,只是给出了警告,是因为这种行为可能会导致程序运行时出现问题。C Primer Plus 上说这种行为是无效的,可能是为了强调这种行为的风险性,以及提醒程序员应该遵循最佳实践,使用const关键字来限制指针的修改权限。

因此,建议在编程时,对于不需要修改的数据,应该使用const关键字来限制指针的权限,以提高程序的健壮性和可维护性。

轻语远歌 发表于 2023-10-4 21:51:39

c程序使用const数据的地址给普通指针时,只会警告,而c++会报错
页: [1]
查看完整版本: 非const数据的地址赋给普通指针