我们可以在C语言的一个for循环语句中定义2个不同类型的计数器并增加它们吗?

问题描述 投票:0回答:2

我们可以这样使用

for
语句吗? (C 编程语言)

for(int i = 0,double j = 2; i != j+134; i++, j = j+17);

我正在尝试学习链表,我尝试仅使用单个

for
来增加索引并将指针设置为下一个节点:

for(node* current,int i = 0; current!=NULL; current=current->next_node, i++);
c for-loop if-statement
2个回答
2
投票

那又怎样?

struct IntDouble { int i; double j; };
for (struct IntDouble q = {0, 2}; q.i != q.j + 134; q.i++, q.j += 17) /* void */;

请参阅代码“正在运行”:https://ideone.com/jEXBh7


2
投票

与 C++ 相反,在 C 中你不能在 if 语句中声明对象。

看来你的意思是for语句

for(int i = 0,double j = 2;i != j+134;i++ , j = j+17);

代替 if 语句

if(int i = 0,double j = 2;i != j+134;i++ , j = j+17);

但是这个声明的语法

int i = 0,double j = 2;

不正确。您需要在 for 循环之前声明变量之一,例如

double j = 2;
for (int i = 0;i != j + 134; i++ , j += 17 );

如果变量 i 和 j 的类型说明符都是通用的(例如 int 类型),那么你可以这样写

for (int i = 0, j = 2;i != j + 134; i++ , j += 17 );

在忘记初始化指针的 for 循环中应该使用相同的方法

current

int i = 0;
for (node* current = head; current!=NULL; current=current->next_node,i++);

如果你真的想使用

if
语句,那么这一行

if(node* current = head,int i = 0; current!=NULL; current=current->next_node,i++);

应该由你喜欢重写

node *current = head;
int i = 0;

if ( current != NULL )
{
    current = current->next;
    i++;
}
© www.soinside.com 2019 - 2024. All rights reserved.