gpt4 book ai didi

c - 对 "Programming in C"这本书感到有点困惑(Stephen Kochan)

转载 作者:行者123 更新时间:2023-12-05 01:30:52 24 4
gpt4 key购买 nike

我一直在自学 C 编程,这是一位精通 C 的 friend 推荐的书。书名是 Stephen Kochan 的“Programming in C”。

我有 Java 背景,我对 Stephen 书中的代码编写方式感到有点疯狂。例如下面的代码,我在其中评论了我的困惑。也许我在这里遗漏了一些重要的东西,所以我希望听到一些关于用 C 编写代码的正确方法的意见。

#include <stdio.h>

void test(int *int_pointer)
{
*int_pointer = 100;
}

int main(void)
{
void test(int *int_pointer); // why call the test() function here without any real argument? what's the point?
int i = 50, *p = &i;

printf("Before the call to test i = %i\n", i);

test(p);
printf("After the call to test i = %i\n", i);

int t;
for (t = 0; t < 5; ++t) // I'm more used to "t++" in a loop like this. As I know ++t is different than t++ in some cases. Writting ++t in a loop just drives me crazy
{
if (4 == t) // isn't it normal to write "t == 4" ?? this is driving me crazy again!
printf("skip the number %i\n", t);
else
printf("the value of t is now %i\n", t);
}

return 0;
}

最佳答案

//为什么在这里调用 test() 函数而不带任何实际参数?重点是什么?它不是调用,它是函数声明。在此位置完全没有必要,因为函数在几行之前定义。在现实世界中,这样的声明并不经常使用。

//我更习惯在这样的循环中“t++”。据我所知,在某些情况下,++t 与 t++ 不同。在循环中写++t 只会让我发疯在这种情况下,它们是等效的,但如果您考虑使用 C++,最好完全切换到++t 形式,因为在某些情况下(例如使用迭代器)它会有所不同。

//写"t == 4"不是很正常吗??这又让我发疯了!有些人倾向于使用 4 == t 来避免在使用 t = 4 而不是 t == 4 时出现问题(两者在 C 中都有效,因为 if 条件)。由于所有普通编译器无论如何都会对 t = 4 发出警告,因此 4 == t 是相当不必要的。

关于c - 对 "Programming in C"这本书感到有点困惑(Stephen Kochan),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21319505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com