int i=1; int *j = null;if(i==j){return} 这样写合法吗?
时间: 2024-04-12 14:28:36 浏览: 94
javascript简单判断输入内容是否合法的方法
在C语言中,你的代码有几个问题:
1. 在C语言中,NULL应该以大写字母表示,而不是小写字母。所以正确的写法是将"null"改为"NULL"。
2. 在声明指针变量时,应该使用赋值运算符"="而不是"=="。所以你需要将代码中的"="改为"=="。
3. 在条件语句中,不能直接比较一个整型变量和一个指针变量是否相等。因为它们是不同的类型,无法直接进行比较。你需要将条件语句修改为比较两个指针变量的值是否相等。
根据上述问题,修正后的代码如下:
```c
int i = 1;
int *j = NULL;
if (i == *j) {
return;
}
```
请注意,这段代码仍然存在问题。因为你将指针j解引用(使用*操作符),即访问了j所指向的内存位置。然而,在这种情况下,指针j是一个空指针,没有有效的内存地址。因此,解引用空指针将导致未定义的行为。
如果你想检查指针是否为空,可以直接比较指针变量j和NULL,不需要解引用指针。修正后的代码如下:
```c
int i = 1;
int *j = NULL;
if (j == NULL) {
return;
}
```
这样修改后,当指针j为NULL时,条件成立,执行return语句。否则,继续执行后面的代码。
阅读全文