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)

取消
    发表评论

猜你喜欢

  • 从本质理解指针的那些知识 | C语言基础
  • 从猜数字程序来理解结构和随机数 | C语言基础
  • 谈谈printf()和scanf() | C语言基础
Avatar photo

Nibbles 尼布

向着终生成长者迈进!
24
文章
4
评论
35
获赞

多平台更新

▲ “尼布是我”小程序
▲ 个人公众号

热门文章

TOP1
Python数据分析 Ⅰ:pandas模块
7 6 月, 2023
TOP2
更大挑战,更多机遇 | 2023 年终总结
8 1 月, 2024
TOP3
【杂谈】真的需要系统地学那么多编程语言吗?
14 8 月, 2024

标签云

AI (2) anaconda (1) Bilibili (1) Cookie (1) CS50x (1) CTF (1) C语言 (4) Git (1) Github (1) HTTP (1) Java (1) matplotlib module (1) Minecraft (2) NamelessMC (1) pandas module (1) PHP (1) python (2) Serverless (1) vim (1) VuePress (1) WordPress (1) zeabur (1) 公众号 (2) 年终总结 (2) 思维导图 (1) 换源 (1) 数据库 (1) 杂谈 (1) 浪前 (2) 自媒体 (2) 解密 (1) 运营 (2) 飞书 (1)

支持我!

Blog Circle

开往-友链接力
博客录(boke.lu) 随机博客
博客圈
  • SiteMap
  • Umami
  • 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
  • 友情链接