Quiet corners hold universes - C
type: channel
link: https://blog.qchu.top/tag/C/
items: 第三次学习c语言
items: 学习C语言第二天
items: 第一天学习C语言

第三次学习c语言
type: item
date: 2025-12-05T10:48:01+08:00
description: {mtitle title="运算符及输入输出符C"/}第一学习输入输出符，第二学习运算符，第三进行练习普通运算符的基础理解还不错，对于位运算符，移位运算符和逗号表达式理解不是非常明白，只能超过了没有一点想法，此外实验了几道题目，也是前面的会，后面的能猜到用什么，但是输出不完整。//printf是一个库函数=》C语言已经实现好了，要想使用库函数，必须引用头函数stdio.h //要想换行要在其中加入\n //占位符第一个字符为%，第二个字符为占位符的类型， // %d表示代入的值必须是十进制整数，%s表示代入的是字符串，%c表示字符，，%f小数，%p指针（用来打印地址） #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { printf("Change World\n"); printf("Change world\nHello world"); printf("There are %d apples, %d bananas\n", 3, 9); //第一个占位符就占的是第一个逗号后面的内容，第二个就占用第二个逗号后面的内容 printf("%s是一个动漫人物\n", "王麻子"); printf("%5d\n", 123); // 不足五位会在左边（前面）加空格，因为输出值默认为右对齐 printf("%5d\n", 123456); // 超过是多少就输出多少 printf("%-5d\n", 123); //在％后面添加-号会导致输出的值变为左对齐,会在后面加空格 //printf允许限定占位符的最小宽度 printf("Number is %.2f\n", 0.5); //限定小数位数是在%后添加 .2 表示小数点后两位 printf("%6.2f\n", 1.2); //代表数据的宽度是6，这个宽度包含小数点的，且要求小数点后两位 //空格 空格 1 . 2 0 int score = 0; int a = 0; int b = 0; //printf("请输入成绩："); //从键盘获取一个数据，写道变量score里面，&为取地址符号 //scanf("%d", &score); //要想使用score需要在最前面加 #define _CRT_SECURE_NO_WARNINGS //第一个参数是占位符，第二个参数表示用户输入的参数存入变量中 //程序开始后，控制台会等待输入 //scanf中有什么输入什么，如果在%d后加入\n，必须输入\n才能继续 //printf("成绩是：%d\n", score); scanf("%d%d", &a, &b); //scanf()返回值的含义 //正常情况下会返回读取的变量个数 //如果没有任何读取项或者匹配失败返回0 //如果没有读取任何数据前，发生读取错误，或者读取到文件结尾，返回常量EOF(-1) //end of file 文件结束的标志 //读取多个数值时，如果想要提前结束按ctrl+z int ret = scanf("ret = %d\n", ); printf("数字是：%d,%d\n", a, b); int year = 0; int month = 0; int day = 0; scanf("%d-%d-%d",&year, &month, &day); //scanf里面有什么就输入什么，比如上述2025-12-2 printf("%d%d%d\n", year, month, day); return 0; }#include<stdio.h> int main() { int a = 1 + 2; int b = 5 - 3; int c = 5 - 16; //负数也是可以被输出的 int d = 3 * 5; float e = 3.3 * 5.5; printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%f\n", a, b, c, d, e); float x = 6 / 4; int y = 6 / 4; //整数除法，只会返回整数部分，丢弃小数部分 float z = 6.0 / 4; //如果想要出现小数就要变成浮点数6.0 float w = 7.0 / 22; printf("x=%f\ny=%dz=%f\nw=%f\n", x, y, z, w); int g = 3 % 2; int h = -8 % -3; //只能用于整数不能用于浮点数 printf("g=%d\nh=%d\n", g, h); //赋值操作符 //int a = 100其实就是运算符，就是吧100给了a，a =200就是把200给到了a //复合运算符 //+=，-…

学习C语言第二天
type: item
date: 2025-11-26T17:00:00+08:00
description: 今天学习了数据类型，变量，内存管理，数据类型占用大小及取值范围等。课程中的内容通俗易懂，目前下来都能明白。此外在整个学习流程中，有点缺乏方向了，后续需要了解整体学习内容及流程。以下是我学习的笔记，欢迎指出错误，轻喷，谢谢。//数据类型 /* 基本类型→字符型，整型（短整型，整型，长整型，长长整形），浮点型和布尔类型 枚举类型(enum) 空类型(void) 派生类型→指针类型，数组类型，结构体类型，共用体类型，函数类型 */ /* 字符型 char 有三种书写类型 char [signed] char 有符号 其中signed可以省略 unsigned char 无符号 其中unsigned必须有 */ /* 整型 short [signed] short unsigned short int [signed] int unsigned int long [signed] long unsigned long long long [signed] long long unsigned long long */ /* 浮点型 float 单精度 double 双进度 long doubele */ /* 布尔型 只有0表示假 */ #include <stdio.h> #include <stdbool.h> //int main() //{ //char a = 'a'; //unsigned char ch2 = 'b'; //short sh = 10; //int i = 20; //在这里博哥写的定义a了，会报错，类型不一样也会报错 //long la = 100; //long long lla = 1000; //float f = 12.5; //double d = 12.5; //long double ld = 12.5; //printf("%d\n%d\n%d\n%d", 'a', ch2, i, 'i'); //想要看输出是否正确可以加一个打印，记住是字符 //这里打印中，输出的是不一样的，还需注意，此外 单行注释快捷键， 1选中 2ctrl 3/ // _Bool flg = true; //其中_Bool中B必须大写,假为false, // if (flg) // { // printf("this is true!"); // } // return 0; //} //有了数据类型后，我们如何使用数据类型？ //通过类型我们可以定义变量，而变量中可以存储数据 /* 变量 data_type name 数据类型 变量名 */ /* 变量命名的一般规则 只能由字母，数字和下划线组成 不能由数字开头 长度不能超过63字符 区分大小写 不能用关键字 */ /* 变量的分类 全局变量 在大括号{}外定义的变量 局部变量 在大括号{}内定义的变量 */ /* 变量既然是数据，那保存在哪里了，保存在内存中 为什么划分内存，因为存数据和取数据效率高，太乱了就不好找 初步分为三个区 栈区：局部变量 堆区：内存管理等 静态区：全局变量 */ int local = 10; //全局变量 int gloable = 100; //全局变量 int main() { int local = 20; //局部变量 printf("%d\n", local); //变量名一样，先读取局部变量 printf("%d\n", gloable); printf("%zd\n", sizeof(char)); //1个字节 sizeof返回值是size_t类型，期望通过%zd输出 printf("%zd\n", sizeof(_Bool)); //1个字节 当然%d使用也可以 printf("%zd\n", sizeof(short)); //2个字节 printf("%zd\n", sizeof(int)); //4个字节 printf("%zd\n", sizeof(long)); //4个字节 printf("%zd\n", sizeof(long long)); //8个字节 printf("%zd\n", sizeof(float)); //4个字节 printf("%zd\n", sizeof(double)); //8个字节 printf("%zd\n", sizeof(long double)); //8个字节 return 0; } /* 数据类型占用内存大小以及取值范围 数据存储容量或者数据传输速率的基本单位：bit,byte,kb,mb,gb,tb,pb 8 bit = 1 byte 1024 byte = 1 kb 其余的进率都是1024 sizeof关键字可以计算 某个类型或者表达式的长度，单位是字节。 …

第一天学习C语言
type: item
date: 2025-11-25T23:54:00+08:00
description: {mtitle title="记录C语言学习过程"/}本来想着学习就好了，但是有时候就是有惰性在，有很大可能学不下去，分享才能让自己的学习更有动力，那我就分享好了，目前计划2026过年前，目标是达到能考过二级水平，然后再进行计划学习，今天是11月25日，初步认识C语言的概念，记录一些笔记，轻喷。 目前是看见B站上的一个9月份发布的视频进行学习，#include<stdio.h> /*头文件后缀为.h 源文件后缀为.c */ // 行注释和块注释 块注释不能嵌套 //关键字，如int，if等不能定义，因为C本身已经有的 //单引号‘’只能包含一个字符，字母@！都算是字符，汉字不可以 //字符串 “”一个或者多个字符成为字符串，字母中文等都可以 //先打断点再调试，再数字前面点红点 目的看内存布局 /* str数组中为什么会多一个\0？ %s打印的字符串，\0起到的作用就是标记结尾 字符串结尾都是以\0结尾的 */ /* ASCLL编码 dec是十进制，oct是八进制，hex是十六进制，ch是字符的意思 字符零‘0’对应的十进制数字是48 大写字符‘A’对应的十进制数字是65 小写字符‘a’对应的十进制数字是97 小写a和大写A差值是32 ASCLL前32个字符是不可答应的，无法再屏幕上观察到 */ int main() //main是c语言的入口，一个项目只有一个入口，即使有很多个.c文件也只能有一个main { printf("hello world\n"); printf("%c", 'a'); char str[] = "abcde"; //char str是储存字符串的，其中str叫做数组 printf("%s\n", str); //这里换行符斜杠错误过 printf("%c\n", 'A'); //字符在计算机中存储规则是十进制 printf("%c\n", 65); //字符A的十进制也可以用 return 0; } ...