if 语句在 c 中带有 NULL

  • 本文关键字:NULL 语句 if c null
  • 更新时间 :
  • 英文 :


我有一个看起来像这样的程序:

int someVal = 5;
int startCol = NULL;
int startRow = NULL;
int destCol = NULL;
int destRow = NULL;
for (int i = 0;i<2;i++){
if (startCol == NULL){
startCol = someVal;
}
// same for other variables
}

所以基本上我想在第一次检查时更改变量的值,而不是之后。 我该怎么做?在 python 中,我会使用 None 但似乎我不能将 NULL 与 int 一起使用。我不能只将值设置为 0,因为我在数组索引之后使用它们,所以如果值为 0,我将访问第一个值,但我不想。

NULL 在分配给整数时转换为零。

int变量没有任何特殊值,这意味着"未初始化"或"无值"。

唯一的解决方法是选择一个整数值,该值将指示变量需要初始化。您还可以定义更复杂的数据类型,其中包含有关所需初始化的信息

typedef struct
{
bool initialized;
int val;
}myInt_t;
myInt_t x = {.initialized = false};
if (!x.initilaized) x.val = 100;

但最好的方法是拥有正确的程序算法并仔细编程,记住未初始化的变量。

如果您将它们用于索引,将它们设置为-1并不是一个坏主意。

然后,您只需检查它们是否-1

NULL((void*)0).这是一个指针。混合intpointer并不是真正的最佳实践,但如果使用得当,会产生所需的输出。

如果您使用的是代码片段中的代码,难道不是一个选项吗 检查是否i == 0

NULL用于指针。

int只是 int 值,而不是引用。您可以将它们分配给NULL并测试它们是否NULLNULL只是一个数字(如果用作int(我认为它是0(。

如果将其用作指针,它将指向不可用的地址(取消引用它将导致 SEGENV(,您可以使用它来不为其分配任何数据。

相关内容

  • 没有找到相关文章

最新更新