这个问题试图收集每年出版的数十本不良C++书籍中的少数珍珠.
与许多其他编程语言不同,这些编程语言经常从互联网上的教程中随处获取,很少有人能够快速学习C++,而无需学习编写精良的C++书籍.这样做太复杂了.事实上,它是如此庞大和复杂,有很多非常糟糕的C++书籍.我们并不是在谈论糟糕的风格,而是体育明显的事实错误和促进糟糕的编程风格.
请编辑接受的答案,以提供高质量的书籍和近似的技能水平 - 最好 在 C++聊天室讨论您的添加后.(如果他们不同意建议,常客可能会毫不留情地撤销你的工作.)添加一篇关于你亲自阅读/受益的每本书的简短描述/描述.随意讨论质量,标题等.符合标准的书籍将被添加到列表中.由C和C++用户协会(ACCU)撰写评论的图书都有指向评论的链接.
*注意:常见问题和其他资源可以在C++标签信息和c ++ - faq中找到.
我知道C中的全局变量有时会有extern关键字.什么是extern变量?宣言是什么样的?它的范围是什么?
这与跨源文件共享变量有关,但这是如何工作的?我在哪里用extern?
#include <stdio.h>
int main(void)
{
int i = 0;
i = i++ + ++i;
printf("%d\n", i); // 3
i = 1;
i = (i++);
printf("%d\n", i); // 2 Should be 1, no ?
volatile int u = 0;
u = u++ + ++u;
printf("%d\n", u); // 1
u = 1;
u = (u++);
printf("%d\n", u); // 2 Should also be one, no ?
register int v = 0;
v = v++ + ++v;
printf("%d\n", v); // 3 (Should be the …Run Code Online (Sandbox Code Playgroud) c increment operator-precedence undefined-behavior sequence-points
main()在C和C++中定义函数的正确(最有效)方法是什么- int main()或void main()- 为什么?如果int main()那么return 1或return 0?
这个问题有很多重复,包括:
main()函数的有效签名是什么?main()函数void main()和int main()?main()在C++中的签名main()? - 对于C++,确实有一个非常好的答案.main()C语言中的函数样式main()C中的方法类型int main()vs void main()在C中有关:
如何将一小段文本写入.txt文件?我一直在谷歌搜索超过3-4个小时,但无法找到如何做到这一点.
fwrite(); 有这么多论点,我不知道如何使用它.
当您只想为文件写一个名字和几个数字时,最简单的功能是什么.txt?
编辑:添加了一段我的代码.
char name;
int number;
FILE *f;
f = fopen("contacts.pcl", "a");
printf("\nNew contact name: ");
scanf("%s", &name);
printf("New contact number: ");
scanf("%i", &number);
fprintf(f, "%c\n[ %d ]\n\n", name, number);
fclose(f);
Run Code Online (Sandbox Code Playgroud) 我一直在写类似的东西
char *x=NULL;
Run Code Online (Sandbox Code Playgroud)
假设是
char *x=2;
Run Code Online (Sandbox Code Playgroud)
会创建一个char指向地址2 的指针.
但是,在GNU C编程教程中,它表示int *my_int_ptr = 2;将整数值存储2到my_int_ptr分配时的任何随机地址.
这似乎意味着我自己char *x=NULL正在将NULL一个cast 的值分配给char内存中的某个随机地址.
而
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *x=NULL;
if (x==NULL)
printf("is NULL\n");
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
事实上,印刷品
一片空白
当我编译并运行它时,我担心我依赖于未定义的行为,或者至少是指定不足的行为,我应该写
char *x;
x=NULL;
Run Code Online (Sandbox Code Playgroud)
代替.
我正在尝试在Visual Studio Code中构建C/C++.我安装了C/C++和所有相关的扩展.
#include <stdio.h>
int main() {
printf("Test C now\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是在#include <stdio.h>"添加包含设置路径" 下面有一条绿线.当我单击它时,它会移动到"c_cpp_properties.json".
我可以在下面的配置中添加包含路径的方式和位置?
"configurations": [
{
"name": "Mac",
"includePath": ["/usr/include"]
}
]
Run Code Online (Sandbox Code Playgroud) 我想提高我的C技能,以便更有能力将R代码转换为C,这将是有用的.人们有什么提示可以帮助我?
背景:几年前我参加了一个在线Intro to C课程,加上Writing R Extensions和S Programming(Venables&Ripley)使我能够将瓶颈操作转换为C,例如计算子矩阵的乘积(我是否重新发明了转那里?).但是我想稍微超出这个范围,例如转换更大的代码块,利用线性代数例程等.
毫无疑问,我可以从我以前使用过的资源中学到更多东西,但我想知道是否还有其他人推荐的资源?通过示例进行示例显然是了解更多信息的一种方式:Brian Ripley 在S高效编程研讨会上提供了几个从S原型转移到S + C的示例以及最近的Bioconductor研讨会高级R用于生物信息学(抱歉不能post hyperlink)包括一个编写R + C算法的实验室.更像这样,或其他建议将不胜感激.
我正在阅读C编程语言(第5章),我对此示例感到困惑:
int n, array[SIZE], getint(int *);
Run Code Online (Sandbox Code Playgroud)
为什么这个函数在这里调用?这只是一些棘手的例子和无效的代码吗?
我现在是大学新生,主修CS.我刚刚完成了我的"计算机程序设计入门"课程.我喜欢它,觉得我学到了很多东西.
几天前,我读了乔尔的"Java学校的危险"."链接列表?" 我想,"那些甚至都不是很难.我们已经完成了一些已经上课的人." 这是正确的,因为在Java中,它们并不那么难.但无论如何,我试着用C语言写一个.
它太难了!
Joel是对的,我认为...... Java为你处理了许多小小的东西,它真的不那么难.但我决心克服我学校的Java-tude并学习如何在C中写下这个dang链表.
所以我想,有人问,有没有人知道学习C的好(和免费)在线教程,而不是试图提出很多很小的问题?具体来说,学习如何处理指针,以及所有那些符号(&,*,**,[]以及它们如何协同工作),我想,认为我已经在Java中很精通,所以我不需要对如何写教程一个"你好,世界!" 程序.但是我绝对不准备进入任何超级高级的C或C++,因为我所知道的只是Java.
任何帮助赞赏!