指针置为NULL的写法
时间: 2024-04-22 16:19:33 浏览: 20
指针置为NULL的写法是将指针变量的值设置为0或者nullptr。下面是几种常见的写法:
1. 使用0进行赋值:
```
int* ptr = 0;
```
2. 使用nullptr进行赋值(C++11及以上版本):
```
int* ptr = nullptr;
```
这样将指针置为NULL后,就表示该指针不指向任何有效的内存地址。
相关问题
指针数组里面放函数地址,当地址为NULL时应该写(unsigned char*)NULL吗,如果不行,请给出理由解释,并给出正确写法
在指针数组中存储函数地址时,应该使用NULL而不是(unsigned char*)NULL。因为NULL是一个预定义的宏,它通常被定义为零,表示指针不指向任何有效的内存地址。而(unsigned char*)NULL则是将NULL强制转换为unsigned char*类型,这样做是不必要的,也是不标准的写法。
正确的写法如下:
```
void (*func_ptr_array[])() = {func1, func2, NULL};
```
其中,func1和func2是函数指针,NULL表示指针数组的结尾。
NULL&&NULL
在C++和其他一些支持空指针运算的语言中,`NULL` 或者 `nullptr` 是一个特殊的值,表示没有有效的内存地址或指向任何特定对象的引用。当你看到 `NULL && NULL` 这种表达式时,它实际上是一个简写形式,等价于 `NULL` 和 `NULL` 进行逻辑与(`&&`)操作。
逻辑与操作符 (`&&`) 的规则是,如果第一个操作数为真(非零),那么结果就等于第二个操作数;如果第一个操作数为假(零),那么结果就是第一个操作数本身,因为逻辑与假的结果总是假。由于 `NULL` 表示空或假,在大多数情况下,`NULL` 与任何值进行逻辑与操作都会返回 `NULL`,因为 `NULL` 本身就是假。
因此,`NULL && NULL` 的结果通常是 `NULL`,除非语言的具体实现有特殊处理。然而,在实际编程中,这种写法并不常见,因为它通常用来测试变量是否为 `NULL`,而不会直接做两个 `NULL` 的逻辑与。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)