Nibbles Blog Nibbles Blog
  • 专题汇总
    • 技术学习
    • 个人成长
    • 运营技能
    • 自媒体
    • Minecraft
  • 推荐
    • 好物推荐
    • APP推荐
  • 关于我
    • Nibbles Studio
  • 友情链接
首页 › 技术学习 › C语言初入门 —— 基础的杂记

C语言初入门 —— 基础的杂记

Avatar photo
Nibbles 尼布
20 8 月, 2024

当你开始学其他语言,回头看Python。你会对Python之禅中“简单优于复杂”有所体会,Python太简洁了😂

我目前是暑假自学状态,所以本笔记是融合了国际知名的《Harvard CS50x》和国内b站的《鹏哥C语言》。和以前学的Python有些结构重合的部分我就不再提了,文中有的会有些许疑问,我还在学习,若有记得不对的可以提出来哈~

CS50x:写程序更关注于自己的想法,以及实现需要的函数、条件、循环、变量。

C语言学习笔记

//头文件:引入标准输入输出库stdio是缩写,不要拼成studio!
#include <stdio.h>

C语言中的变量要先声明变量类型

main函数是程序的入口 ,C语言程序是从main函数的第一行开始执行。且一个项目中只能有一个main(),一个项目不代表一个文件。

printf("填入占位符\n", 占位符要代表的)
 //%c,%f,%s,%d这类是占位符。当然也可以直接用。

语言的char单字符数字类型,应当用单引号括住单字符,双引号可以用于字符串(或零字符的字符串)

字符的本质就是ASCII编码。

printf("%c\n",'a');
printf("%c\n",97);//两者输出结果相同

C语言字符串中个特殊的知识,就是在字符串的末尾隐藏放着一这个\0字符是字符串的结束标志。 所以打印函数或者计算字符串长度strlen()的函数会在遇到此字符后停止打印或计算。 观察方法:F10+调试-窗口-监视,填入字符串并展开即可看到。 没有\0字符的情况有可能使用了字符数组

char arr[] = {'a','b','c','d','e','f'};
printf("%s\n",arr);
//但是输出就会没有终止,往往打印的时候后面会尾随乱码。为了避免这种情况,在字符数组后要自己手动添加\0
char arr[] = {'a','b','c','d','e','f','\0'};

strlen() 是string.h的库函数(需要include),统计的就是\0前的字符个数(不计\0本身) 函数本身返回的是size_t类型的,所以占位符最好换成%zd

C语言中的switch也是代表选择结构的关键字之一

C语言中还有do while循环

转向语句:break语句、goto语句、continue语句、return语句

行内注释用//,多行的要用/* */

PythonC
elifelse if
or||
and&&
i+=1 / i-=1可用左边的形式,
但若每次都加1则可表达为i++ / i–
C语言初入门 —— 基础的杂记-Nibbles Blog

C语言的各种数据类型都有自己的长度,计算操作符数用sizeof(),其返回C语言规定是只能是无符号整数(0和正整数),为了统一各系统返回值类型,定义了 size_t 类型来表示,故没有规定具体的类型:unsigned int 或 unsigned long long等。括号内如果放的是表达式,则不会真实地计算。

C语言初入门 —— 基础的杂记-Nibbles Blog

signed和unsigned:sign能表示正负数,unsign即无符号

char不确定是否有无符号,取决于编译器的实现。大部分的情况char == unsigned char

int默认是signed,且打印的占位符为%d。(unsigned打印占位符为%u)

数据类型——模具 ,C语言中变量需要声明数据类型,若有给初始值的过程即初始化。无初始化的话不能让你用。已有初始化后又给值那就叫赋值。

float num = 3.14f;

全局变量在花括号外,局部变量在花括号内,局部值优先。

除号 / 两端都是整数,即为整数除法(且结果也为整数-只有整数部分丢弃小数部分)

负数取模的规则是,结果的正负号由第一个运算数的正负号决定

连续赋值,从右往左赋

单目操作符(++,–等),之前讲的符号中两边都要跟东西的是双目操作符

环境配置

《鹏哥C语言》中是用VS2022来教学的,还有关于scanf()函数的配置问题,我写到Gitee Wiki中了。

but,我要强推CS50x课程对教学用IDE的解决方案!
(国外的讲师深知教学应该更重于idea和实现的代码,而非前期的繁杂的环境配置)

课程中使用了远程VSCode作为编辑器,并且云端已经全部搭建好C语言的环境了,开箱即用!
这样的CodeSpace可以通过Github登录授权后拥有:https://cs50.dev
(至于速度的话,你都能流畅在YouTube上看课了,同样网络环境下打开这链接,速度还是快的)

对于编译的操作还简化了很多,编译一个hello.c只需下面两条命令

make hello
./hello

(后面课程Arrays中介绍了make实际上是clang的自动执行脚本,笔记)

同时侧边栏安装了一个图标是一个爱quack叫的吉祥物鸭子的插件,点开一看,是个免费的AIChat!
不过,它的回答只能是英文的哦~ 基本上是能看懂滴

如下,这只鸭子的回答真的很喜欢quack🦆,也有可以在线使用的地方:https://cs50.ai/chat

C语言初入门 —— 基础的杂记-Nibbles Blog

还有安装Docker,也许后面的课程还会教项目的上线吧。

声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
CS50xC语言
2
0
Avatar photo
Nibbles 尼布
向着终生成长者迈进!
赞赏

评论 (0)

取消
    发表评论

猜你喜欢

  • 初识 Java 及数据类型 | Java语言基础
  • 从本质理解指针的那些知识 | C语言基础
  • 从猜数字程序来理解结构和随机数 | C语言基础

多平台更新

▲ “尼布是我”小程序
▲ 个人公众号
  • SiteMap
  • Umami
  • CSDN
  • xLog「待开放」
  • Substack「待开放」
Copyright © 2022-2025 Nibbles Blog. Designed by nicetheme. 浙公网安备33038102332481号 浙ICP备2024120131号
技术博客: AHdark Blog Tkong Blog iVampireSP 的物语 我不是咕咕鸽 热心市民 L 先生 ncc的个人网站 岚天小窝 天远笔记
  • C语言4
  • python2
  • AI2
  • 公众号2
  • 运营2
  • 专题汇总
    • 技术学习
    • 个人成长
    • 运营技能
    • 自媒体
    • Minecraft
  • 推荐
    • 好物推荐
    • APP推荐
  • 关于我
    • Nibbles Studio
  • 友情链接