c语言:概念内容
文章平均质量分 68
关于c语言的概念,笔记
Code_Solitude
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c语言:选择题概念
7. 逗号运算符 exp1,exp2 :从左往右算,整个表达式最终值=exp2的值,优先级最低(有时候前一个是不会影响后一个的,不要傻傻卡在一个没用的项)5. 赋值 = vs 等于 == :选择题最爱挖坑!正确写法#define SQUARE(x) ((x)*(x))第5章 循环 while / do while / for。//a本身仍然是int,a的值不变。第2章 数据类型、常量变量(超级多选择题坑)第8章 指针(选择题概念坑很多,初学难点)第3章 运算符与表达式【选择题重灾区】原创 2026-10-13 20:43:35 · 90 阅读 · 0 评论 -
c语言:数组指针和指针数组的书写模板
如果是把15个int全部复制,不仅拷贝量太大,而且容易占大量内存,容易栈溢出。比如 :arr[i][j]等价于 (*(arr+i)+j)int * arr[ 3];注意:int(*arr)[]这个是数组指针。但是在日常代码中,直接写数组的形式就可以了。数组名大部分情况都会退化为为指针。1.二维数组传参的3种书写模板。p+1还是看成指针加减的形式。arr[]会变成 (*p)例如 arr[3][5]3.为什么数组名会退化。这个是计算机设计的机制。只是考试要会辨别就行了。原创 2026-10-17 13:38:44 · 147 阅读 · 0 评论 -
c语言:指针(3)+冒泡排序
注意:arr、&arr[0]、&arr 它们打印出来的都是同一个地址。p存的是a的地址,str存的是hello \ 0。sizeof(arr) 得到整个数组的总字节数。If(fabs(a-b)<1e-7)来判断。公式:arr[i]==*(arr+i);##6.浮点数不可以直接a==b。##1. 数组和指针的关系。&arr 取整个数组的地址。前者本质是指针,后者是数组。1e-7表示10的负7次方。&arr+1跳过整个数组。##2.数组名会退化。后期用qsort简化。原创 2026-10-17 14:09:40 · 158 阅读 · 0 评论 -
关于浮点数的比较以及cmp(回调函数)的正确写法
1.浮点数不可以直接用==去判断比较,会出现精度误差问题。然后把它强制转化指针,然后解引用取到里面的数。2.但是在qsort中,该比较写法是允许的。总结:浮点数不可以直接用==比较,但是可以。首先先放一个p1,但是不知道是什么类型。fabs(a-b)!要用作差取绝对值的方法。原创 2026-10-18 13:57:01 · 164 阅读 · 0 评论 -
c语言:关于qsoet函数知识点
把数组首地址、元素大小和个数、回调函数的地址全部传给 qsort,从而让它可以自己进行排序比较,qsort 自己就会看差值的正负去排序。int qsort(arr, 10, 4, 比较函数的地址);原创 2026-10-18 14:16:16 · 48 阅读 · 0 评论 -
c语音日历排版,printf
在sun前面有两个空位,所以sun在第二个字符,由于每个字母占一个字符,后面有加了2个空位,所以之后每一天都要多5个字符。1.printf有两种宽度写法:第一种是固定宽度。宽度是后面第一个数,第二个参数是要参与打印的。这种表示占n个字符宽度,右对齐,空位补空格。所以 宽度=2+5*weekdany。但是其余时候代码运行时它都是解引用。定义时它是说明数组存的是指针。原创 2026-10-16 12:20:57 · 169 阅读 · 0 评论 -
c语言:对比szeof和strlen
在c语言中:char ASCLL字符(英文字母,数字,英语标点)算一个字节。如果题目问比较它们的字节大小,记得前者要算\0,后者不用算\0.1.szeof 是运算符,求【占用内存字节的大小】注意:一个数字,字母算一个字节,一个汉字算两个字节。需要头文件:#include<string.h>它算的变量/类型所占的总字节数,包括\0。它算的是\0前面的有效字符的个数。2.strlen是库函数。原创 2026-10-11 17:32:06 · 69 阅读 · 0 评论 -
C语言常量、标识符、转义字符错题规则
核心: \ 开头的一整串转义序列,整体只代表【1个字符】坑:数字里面不能加逗号, 987,023 直接非法。转义:斜杠开头算1个,八进制0到7,十六进制a-f。整型:0八0x十六,八进制无八九,长整型末尾L。四、字符常量 & 转义字符(高频错题区)标识符:字母下划线开头,数线下划线字母。C语言常量、标识符、转义字符。一、标识符(变量名)规则。三、实型(浮点数)常量。浮点:e后必须是整数。原创 2026-10-14 10:26:07 · 162 阅读 · 0 评论 -
个人编程学习暨正解当代人&人工智能功能性问题
我们可以思考下,对AI在认知层面的培养价值,是普遍忽略,还是有人的刻意隐瞒。在教育从业者,传统学者的角度,他们的言语主旋律大多是学生会用AI写作业,代替思考,这便在教育认知层面建造了一个茧房。在未来的教育与市场错配的情况下,是AI导致大学生失业,还是多年不变的老旧大学教育,这便成了一个讨论的空间。一旦鼓吹AI可训练思维,衍生价值观,边界便难以把控,最稳妥的方式便是压低认知培养作用。模型参数容量,训练目标所组成的资源中,大约7成的资源被投入到读懂人类自然语言,语气,潜台词,理解情绪,以符合人类对话情况。原创 2026-07-22 20:51:18 · 247 阅读 · 0 评论 -
进制转化(当两个进制一个是另一个的2次方时用权重,10进制大转小用短除法,小转大正常公式)
16进制:0 1 2 3 4 5 6 78 9 10 11 12 13 14 15。2x8的0次方+1x8的1次方+0x8的2次方=10。10进制:0 1 2 3 4 5 6 7 8 9。(换成10进制,16进制,只是把8给换掉而已)8进制:0 1 2 3 4 5 6 7。6x10的0次方+5x10的1次方。公式:每一位x进制的次方,再相加。常数转化:012转化为8进制。以十进制的20转8进制为例。大进制化小进制:用短除法。20/8余4(0号位)2/8余2(1号位)原创 2026-08-01 14:53:09 · 200 阅读 · 0 评论 -
C语言基本概念
1.C语言是计算机语言,通过编译器和链接器实现。C语言放在点C的文件中(用ds时记得)关键字是C语言中具有特殊含义的保留字,不能用作标识符(如变量名、函数名)。链接器作用:把多个目标文件和库文件转为exe文件(可执行)%d 整数、 %c 字符、 %s 字符串、 %f 小数。在自定义函数中,上放自定义函数,下放main函数。五、辅助标记(修饰占位符,不是占位符本身)代码入口,有且只有一个,位置可以不固定。6.注释:让程序员看懂,编译器不会管。编译器作用:把点C文件转为obj。C语言知识点(基本知识)原创 2026-07-31 15:44:06 · 181 阅读 · 0 评论 -
C语言运算符分类总结
C语言运算符分类总结。原创 2026-08-01 15:15:57 · 183 阅读 · 0 评论 -
C语言数据类型,变量,常量
浮点型float(3.13f),double(小数3.14)布尔型-Bool(要<stdbool.h>,表示真假)7常量(字面常量,符号常量,const常量,枚举常量)生命周期:和整个文件同生共死;内置类型:字符型char(‘’用单引号的)例:#include<stdio.h>都是修饰长度的:short[int]1.数据类型(内置,派生,自定义)从字母来说:左边大写,右边小写。这个是求字符串的库函数和头函数。C语言数据类型,变量,常量。分类:全局变量,局部变量。不确定,要自己管理的放B。原创 2026-07-31 17:08:28 · 202 阅读 · 0 评论 -
c语言:关于if语句的补充
3.else是和最接近的if组为一对,不是说它对齐就可以了。1.if语句后面可以接单语句,也可以接多语句。7.关系操作符的返回值要用0,1表示真假。4.特别注意if语句中有没有把=和。不可以直接用来比较两个字符串。但是对于多语句要用{}字符串要用strcmp。但是If用的是0和非0。原创 2026-09-04 13:44:35 · 197 阅读 · 0 评论 -
字符vs字符串
1.对于一个字母,数字,符号,它可以是字符,也可以是字符串。如果是字符的话,就只包含本个事物,但如果是字符串的话,他后面会有一个\0结尾。总结:单引号为字符,双引号为字符串;单个字符两者都可表示,两个及以上字符只能用字符串。char a=“x”;(这里包括X和后面的\0)2.对于数字来说,他这个就只能是字符串。''用于字符,""用于字符串。例子:char a=‘x’;原创 2026-08-26 19:06:46 · 222 阅读 · 0 评论 -
选择性语句的选择:switch和if else
注意:变量你要写的时候,你要提前定义,你直接用一个int a=0定义,第二个你的scanf必须写在前面,不然你从功能上来说,他们的逻辑顺序是错的,你只有先输了一个数,他才能去判定,如果你连数都没有输入的话,他是根本判定不了的。switch中的case有穿透性,它可以执行完任务1之后执行任务2,也可以不执行任务2,只执行任务1,关键看有没有break。如果你填a=3的话说出来12,因为他满足前一个if满足后一个if。但是if else的选择就只能多选一,不可以两个同时。比较两种不同的选择语句。原创 2026-08-26 19:05:04 · 167 阅读 · 0 评论 -
c语言:关于占位符有关知识点的补充
打个比方:scanf是要你把这个是写到变量的内存盒子里,如果不用占位符,就只知道写的数是什么,不知道盒子是哪个,所以要用&5.scanf不一定安全,所以一定要有一个头文件让它去检验。6.数组就是地址,所以用scanf时不用加占位符。但是在printf中的,看看要不要先打印,再自增。如果printf(“%5d\n”,123)但printf(“%.2d\n”)这里是不可以少于输出5个最短长度。如果在printf之前,正常算。这种情况,就是先打印,再自增的。会输出 --123。输出默认保留6个小数。原创 2026-09-05 21:35:42 · 206 阅读 · 0 评论 -
关系,条件,逻辑操作符,短路
但是C语言中可以偷懒,从左往右,如果第一个就不符合,就直接排除,不用像政治一样全部推出来。例子:#include<stdio.h>短路:通过以上方法推断,短路没有对错之分。反而涉及到了返回值,变成c与返回值之间。(真的变假,假的变真)这种可以:if(18<=a<=29)定义的时候用=,这个是赋值的意思。这里就会比较a和b,最后再输出m。比较的时候用,这个是等于的意思。b:c如果a为真,就计算b。返回值:0为假,1为真。多个关系运用,不易连用。只要第二步不跑就短路。如果a为假,就计算c。原创 2026-08-28 21:02:43 · 208 阅读 · 0 评论 -
c语言的3种循环:for while do
1.for循环:格式for(表达式1,表达式2,表达式3)用了continue,只是跳出本个循环,后面代码依然要看。一般来说,用for(定义初始值,范围,i++);用了break后面的直接不看,跳出循环。特点:一定会执行一次,假结束,真执行。如果是真的,就继续,一直到假为止。但是,如果没有,就要多一步算字节。break和continue。如果范围有确定的值,直接写。格式:while(范围)3.do-while循环。}while(范围);如果是假的,直接结束。原创 2026-08-27 22:15:23 · 201 阅读 · 0 评论 -
函数递归**和AI对数学的影响
假如全球人类数学水平下降100倍,无法证明斐波那契数列,但发现了规律,这时可以把数据喂给菜豆包,让它暴力试错,这时就会发现对于上亿个数来说,这个规律是正确的,那么在一定程度上可以认为这个假说是成立的(不过也有例外)ret和return不一样,ret是反回值,像一个储存大脑,用来记阶乘,但return是指令,是把大脑里的数据送出去。2 递归的解释:大事化小,有点像数学的放缩,把问题化为一个最小的可解决问题,到这一步就可以停。注意:int n是整型的意思,5也是整型,所以不可以写Fact(n)原创 2026-08-06 23:51:29 · 220 阅读 · 0 评论 -
c语言:指针知识点
1.内存可以分为大量内存单元,一个内存单元大小为8个比特位,每个内存单元都有一个编号,这个编号就是指针。(一栋大房子,有很多房间,每个房间可以住8个人,房间编号就是指针,也是地址)这里**说明pa对应·指针变量,但int对应的是pa的类型,总说是一个整型的地址。pa是通过pa中存放的地址,找到a,将a赋值为10(找到门牌号,然后客人)\左边是变量,右边是赋值量,int tmp已知,为赋值量。此时int &pa是一个未知数,也叫做野函数,不可以强行使用。*p这个即使指针符号,也是解引用,取数组里的数。原创 2026-08-11 23:09:07 · 200 阅读 · 0 评论 -
swtich中case和default的关系&while
2.default是后置备选的意思,有两种情况会选到它,1是前面无break,一直延续下来,体现了穿透性。2是前面的条件全部不符合,只能用default。1.swtich中,case和default的位置没有规定,可以随意放,不过一般defalut放最下面。3.case后面只能放常量和枚举型,像int long char。4.while中:while(a) \这个是条件表达式。{b} \这个是循环体。原创 2026-09-14 17:17:22 · 23 阅读 · 0 评论 -
结构体知识
1.结构体的定义:不同值的集合,这些值叫做成员变量。成员变量的也可以是不同类型,数组,指针,例age,sex,idear等等。struct Stu s2={.age=18,.nam="张三’‘,.sex="男’‘,.id=’‘20188’'};{struct stu s1={“张三”,20 ,“男”,“2908208’};sturct Stu s1={“张三”,20,“男‘,”20188’};其实和传值调用和传址调用本质一样,只是字节的拷贝成本不同。5 点操作符既有·访问的作用,又有修改的作用。原创 2026-08-12 21:27:32 · 209 阅读 · 0 评论 -
最近遇到的知识点
4.scanf有占位符,scanf遇到空白格就会停下,无法过滤它,它是要头文件的,它的占位符和后面的参数的地址一一对应。5.printf的占位符就是%d,它们本生可以被后面的参数替代,但是如果有n个占位符,会有n+1个参数总量。先分清前置自增和后置自增的区别,对于自增的那个数来说,都是自增,区别就是被赋值的那个数变化不同。先看第4步,b取++c,后面就只是c 和a自己的变化了。这里有%a%b 10 20这3个参数。3.%是两个整数的除法,这个求得的是余数。这个指的是:打印的时候最少打印5个参数。原创 2026-09-03 20:23:57 · 28 阅读 · 0 评论 -
赋值操作符
总概括:对于变量,先有初始化,之后便可对它进行赋值。部分保留数学原理:加减乘除,括号,部分同级从左到右。前置就先加1再使用(前就是先,所以就先加1)二者在计算数值的区别不大,主要在意义上不同。if是整型和浮点型的运算,结果是浮点型。相当于a=a+2(自己加2的意思)但两个int的运算,会截取整数结果。只要赋值,就不是原来的初始量。两种同级从右到左:单目+赋值。对于++,–分为前置和后置。且:全真为真,一真一假为假。结果于3,x仍然为3.9。或:一真则真,全假才假。强制类型>乘除>加减.原创 2026-08-04 22:22:22 · 233 阅读 · 0 评论 -
c语言:选择分支内容
这里不用像嵌套一样给第一个if加中括号,是因为如果加了,还要后面补一个else,但补了之后有没有东西写,就直接用if的正常格式就可以了。坑点:要注意每个if和else是否对应,if和else分别要一个中括号。if else if else 都不用分号,它们后面的语句才要用。先明确一个格式:正常的if是没有中括号的,但是if的嵌套可以用中括号。printf(“因为你gpa过低,淘汰”);因为这里的else和第二个fi匹配在一起。格式:if(表达式) 这里没有分号。注意:else和前面最近的if匹配。原创 2026-08-28 17:11:22 · 193 阅读 · 0 评论 -
数组+随机数+循环的中断
通用公式: a + rand() % (b‑a + 1) 生成 [a , b] 的整数。// 直接跳到next标签,中间printf不会执行。注意: srand() 整个程序只调用一次,不要写在循环内部。数组:一组相同数据类型元素的集合。// 自动末尾补’\0’重点:用 %s 打印,必须保证内存后面存在 \0 ,否则乱码。一、循环:break / continue / goto。二、随机数 rand & srand & time。//示例:存放20个人数学成绩。字符数组 vs 字符串。原创 2026-09-01 16:46:18 · 233 阅读 · 0 评论 -
数组+字符串+ASCII大小写转换
要不要我直接给你一份整合好的完整AC代码,就是字母数字混合字符串小写转大写的?✅知识点总结(数组+字符串+ASCII大小写转换)1. arr 和 arr[i] 的区别。4. 数组定义小要点。原创 2026-09-28 23:12:03 · 176 阅读 · 0 评论 -
反码,补码,原码
2.对于负整数:原码:符号位取1,后面取绝对值的原码。补码=原码取反+1 or (反码-1)后取反。这个就用短除法来弄就可以了,余数从下往上排。3. -128到127才有符号范围。有符号: 逻辑右移:左边补0。反码:除了符号位,0和1相互转化。| 有1就为1,全部为0就是0。存放,计算用补码,打印出来用原码。^ 异或 相同为0,不同为1。& 全部为1才为1,有0位0。三:左移:高位抛弃,低位补0。1.对于正整数:原码。公式:1.x^x=0。算数右移:补符号位1。原创 2026-10-08 16:44:19 · 203 阅读 · 0 评论 -
关系操作符oj&&c语言大学第一节课笔记
因为这里是先用再加,所以先拿出来的是0,这是假,则到第二个++b,它是非0,为真,所以后面就短路。scanf 双引号里面除了占位符以外的普通字符,要求你键盘原样输入。#include<math.h>这个是开根号要用的。先用后加,直接把0取下来,后面直接为假,全部短路。但是如果把a改为1,后面就直接全对了,全部加1。scanf和printf的内容格式是一样的。如果a为6,1<a为真,这个就返回1了。1<5,反而成立,这就是问题所在。这里就反过来,全真即真,一假即假。void是虚空,实际上和不写一样。原创 2026-09-20 21:57:48 · 132 阅读 · 0 评论 -
c语言:二分法的完整补充
都是不断缩小搜索区间,取中间值判断,舍弃一半不符合条件的区间。目标:在离散整数集合找满足条件的第一个/最后一个整数。二分法|整数二分 vs 浮点数(小数)二分 总结。目标:求连续区间内的一个近似值(平方根、方程解)差别在于循环终止条件、区间更新方式。原创 2026-10-06 14:03:33 · 210 阅读 · 0 评论 -
c语言:运算符、sizeof、逗号表达式、结构体
注意:char类型,[ ]里面的数字是字符长度的限度值,一个汉字2个byte,1个char占1个byte,一共可以放10个字,最多放19个数字和符号。等价于 (int c = a>b), a=b+10, a, b=a+1;printf(“书名:%s,价格:%.1f”, b.bookname, b.price);注意:如果去掉外层括号 int c = a>b, a=b+10, a, b=a+1;// s+9 运算时short提升为int(会往大的变),所以sizeof结果是4。原创 2026-10-08 09:42:06 · 192 阅读 · 0 评论 -
函数的设计
但用void ,这个的自定义函数前面不用类型,而且本生就可以不用返回,返回的话也可以,但后面不要写任何东西。库函数放在库文件里面,库函数就是已经被写好的代码,可以直接使用,不过要用对应的头文件进行说明。对于static的总结:它对应于局部函数来说,它改变局部函数的生命周期,但是不改变作用域。二.如果没有参数,就用void(这既是无参数的情况,也是不用返回值的情况,任务型指令)全局函数来说,它改变全局函数的作用域,但是不改变生命周期。1.return 后面可以是数值,也可以是表达式,原创 2026-09-15 22:28:40 · 101 阅读 · 0 评论 -
函数的有关知识点
1.函数要先定义,后使用,如果函数的调用在定义之前,就不可以发生作用。那么就要用函数的声明。void 有两种作用,一种是任务型函数,让函数完成一种任务而,另一种是无须返回值。非void函数,则必须有返回值,函数类型与形参的。类型一致,形参一定是对后续函数的构建有作用的。2.void与自定义函数没有必然关系。原创 2026-09-28 23:07:23 · 171 阅读 · 0 评论 -
关于size-t的知识点
1.size-t是strlen函数的返回值专用类型,表示长度,个数,数组下标。(只有正数,没有负数)size-t len=strlen(“abcdef”);算的是全部数组的长度,一般用在后面加的for循环中,作为一个判断条件。int 负0,int len=strlen(“abcdef”);3.size-t要用<stdio.h>,<string.h>a-b这里直接等于2,因为size-t不会为负数。可以跑,但是有点oj可能会判错。原创 2026-09-28 22:58:11 · 46 阅读 · 0 评论 -
c语言循环+分支
如果是真的就往下循环,但是如果是假的,就跳出循环。0表示假,非0表示真,因为当num为0肯定就结束了,而且这时恰好表示循环为假,循环终止。是不是前一个sum和后一个sum是不一样的,前一个sum表示最后的结果,但后一个sum是前一步的结果。4.1. 累加变量sum、标记flag,必须初始化,不然是随机值。3. break只会跳出离它最近的一层循环,不会一次性跳出多层。2. while(num) ,num=0直接退出循环。j<=sqrt(i)去表示范围。原创 2026-09-23 12:56:37 · 200 阅读 · 0 评论 -
c语言:递归
1.定义:函数的自我调用,自己调用自己,每次调用都会逼近临结条件,知道达到条件为止。汉若塔:void hanoi(int n, start, temp, desd)hanoi(n-1,a,c,b);//把n-1个从a移到b,c辅助。//把n-1个从b移到c,a辅助。6.递归时函数自己调用自己,所以一定要设函数。比如:int func(int a)递归核心:终止条件 + 递推公式。2.递归的限制:有限制条件。原创 2026-10-07 16:03:38 · 184 阅读 · 0 评论 -
c语言基础,数组,函数,二分查找,双指针,运算符区别
char *week[] = {“”, “星期一”, “星期二”, “星期三”, “星期四”, “星期五”, “星期六”, “星期日”};注意:Linux平台把 Sleep() 换成 usleep() , system(“cls”) 换成 system(“clear”)//问月份的时候 int arr[13]={0,31,29,31,30,31,30,31,31,30,31,31,31};int is_leap(int year){} //返回1/0,判断闰年。//学号1001的成绩。原创 2026-09-27 10:05:39 · 197 阅读 · 0 评论
分享