C语言
文章平均质量分 78
釉色清风
切忌好高骛远,要有时间有耐心沉淀自己的知识。
从零开始,从简单到复杂。
你不需要很厉害才开始,但是你需要开始才会很厉害。加油加油!
(欢迎一起交流学习吖:+q:1961460852)
展开
-
【C语言】关键字static——static修饰局部变量、全局变量和函数详解!
static修饰局部变量、全局变量、函数,详解!原创 2023-08-01 15:49:05 · 6318 阅读 · 28 评论 -
动态内存管理(malloc、free、calloc、realloc函数简介)
malloc函数的原型:malloc声明在头文件中。功能:这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。因此,malloc函数的返回值一定要做检查。举个例子:原来,我们用在开辟内存空间:现在,我们在动态开辟同样大小的内存空间:根据malloc函数的原型,我们需要传递一个参数,以为单位的内存。然后,我们需要一个来指向这块儿开辟好的 。但由于 malloc函数的返回值为 ,即,所以我们需要先进行,将无类型指针转换为。因此,但是,正如我们上面所提到的,我们只是用mallo原创 2023-09-19 08:03:37 · 190 阅读 · 1 评论 -
C语言实现通讯录 (附完整代码)
同样我们也可以对 我们刚开始定义的 姓名、地址、联系方式等 以同样的宏定义进行转变。//增加联系人的信息//判断数组是否可以增添?printf("通讯录已满,无法添加\n");return;//通讯录没满elseprintf("请输入名字:>");//pc->data 指向的是结构体数组 数组名本身就是地址,不用用取地址符号printf("请输入年龄:>");printf("请输入性别:>");printf("请输入电话:>");printf("请输入住址:>");原创 2023-09-16 21:16:03 · 930 阅读 · 4 评论 -
【C语言】经典题目(四)
✨。原创 2023-08-10 09:59:24 · 299 阅读 · 8 评论 -
scanf函数读取数据 & 清空缓冲区
KiKi想完成字母大小写转换,有一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;从输出结果可以看出来,不管是多种形式123的次性全部输入完,还是一个一个输入4,输出结果都是一样的。针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。当输入(空格)(空格)1(空格)2(回车)时,输出结果为。当我们输入1(空格)2()回车时,输出结果为。当输入1(Tab)2(回车)时,输出结果为。当输入1(空格)2(回车)时,输出结果为。当输入1(回车)2(回车)时,输出结果为。原创 2023-08-06 00:04:13 · 849 阅读 · 6 评论 -
判断一个数字是否是回文数||取整与取余
当第一次判断完毕之后,给x重新赋值,使x=x/10,那这时,x=1234567765432,这时再对x重新取余就可以表示低位的2了。高位的2,同样,取整,使得x除以1000000000000(即10*(x的位数-2))(10的13次),得到12,再取余可得到2。那对于回文数,我们可以设置一个标志量flag,初始化为1,若判断出不是回文数,则改变flag=0。进行完循环之后,我们进一步判断flag的值,若flag还是为1,那么就是回文数了。给你一个整数x,如果x是回文数,输出ture,否则,输出false。原创 2023-07-17 01:25:06 · 291 阅读 · 9 评论 -
笔记||switch语句
switch基础内容概要+简要练习。原创 2023-03-13 13:43:20 · 158 阅读 · 0 评论 -
【C语言】计算含多种运算符的表达式
去结合,如果运算符是左结合的,则和左侧的运算符结合,如果是右结合的,则和右侧的运算符结合。,其左侧运算符/,右侧无运算符,于是6必须和/结合,除法运算的双目都已经和/结合,于是完成5/6除法运算,得到。于+,于是b必须和*结合,而乘法运算是双目运算,无法进行运算,于是继续扫描下一个运算对象;,复合的算术运算符是双目运算符,优先级和赋值运算符相同,也是右结合性的。就是要扫描的第6个运算对象,其左侧运算符+,右侧无运算符,于是0必须和。扫描运算对象,然后考察运算对象两侧的运算符,如果运算对象两侧的运算符。原创 2023-06-11 09:42:45 · 1075 阅读 · 18 评论 -
C语言经典题目(三)
注意这时可以已经删掉一个目标元素后的数组,那么移动后p所指向的元素检验了吗?(用sizeof()函数计算,得到字符数组的字节数,再除以char型元变量所占的字节数,即1,即可得到字符数组的长度。语句只用于循环体,它的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定。指针p+i不断移动,p+0,p+1,p+2,所指向的值都小于’e’,因此p+j不移动(j=0)在里层的for循环中,将p指针所指的位置开始,把后面的元素的值赋值给前一个元素。值时,执行循环体中的语句。原创 2023-06-09 20:57:57 · 637 阅读 · 6 评论 -
【C语言】数据以及位运算
运算的含义是对参与运算的两个运算对象的机器码按二进制方式对相应位进行位与运算,当两个相应位都为1时,运算结果的相应位也为1;运算的含义是对参与运算的两个运算对象的机器码按二进制方式对相应位进行位或运算,当两个相应位都为0时,运算结果的相应位也为0,否则运算结果的相应位为1。运算的含义是对参与运算的两个运算对象的机器码按二进制方式对相应位进行位异或运算,当两个相应位相同时,运算结果的相应位为0,否则运算结果的相应位为1。对整数而言,原码即为反码,对负数而言,反码是将原码中除符号位之外的其余位依次取反。原创 2023-06-07 19:53:47 · 738 阅读 · 11 评论 -
【C语言】语言篇——程序设计入门
const所修饰的内容是不可变的,故只有可读性。原创 2023-05-26 20:28:59 · 1019 阅读 · 3 评论 -
【C语言】结构体指针
虽然p和p1的值是相同的,都是2000H。但是p是指向结构体类型变量的指针,而p1是指向int型变量的指针。若执行p++,则p的值为2043H,而执行p1++,p1的值为2002H。上述是把结构体变量的首地址赋值给指针变量p,所以结构体指针变量p指向了结构体变量stu。从键盘输入一个学生的学号、姓名、年龄和成绩,并存入一个。指针的独特优势在于,在C语言中的某些功能只能借助于。可以进行哪些操作,取决于结构体变量的成员是哪种。变量的成员在本质上也是变量(或数组),所以对于。,当然也可以引用结构体变量的。原创 2023-05-24 14:29:55 · 6912 阅读 · 2 评论 -
【C语言】数组名作函数参数
之后,被调函数执行到return,返回到主调函数,此时函数的执行控制权交给了主函数。原来的被调函数只能针对只有十个元素的数组进行修改,而上面修改过的被调函数可以针对具有n个元素的元素进行修改。首先,程序的执行控制权在主函数,在主函数中,定义一维数组,整型变量i,然后完成对整型数组的赋值。若想在被调函数中,对主调函数中某个局部变量的值进行修改,则必须将该局部变量的地址传递到被调函数中,然后以。在主函数中,输入10个整数,并存入一个一维数组a中,然后在。那么,如果要在被调函数中对主调函数中的一维数组的。原创 2023-05-22 15:38:30 · 1369 阅读 · 0 评论 -
【C语言】结构体——基础篇
struct 结构体类型名 {成员列表 };struct 结构类型名 {类型说明符 成员名 1;类型说明符 成员名 2;……类型说明符 成员名n;char sex;int num;int age;int score;//最后的分号千万不要忘记💫说明:(1)strcut是声明结构体类型时必须使用的关键字,不能省略。结构体这个词是根据英文字母strcuture翻译而来的。(2)结构体数据类型是由一些基本数据类型组合而成的新的数据类型。原创 2023-05-15 10:02:59 · 580 阅读 · 0 评论 -
【C语言】字符串---刷题篇
所以由于前面定义时就对str2进行了初始化,使得str2中的每一个元素都是’\0‘,当对str2中的元素依次赋值,直到赋值结束,其后面的为赋值的位置都是’\0’,直接用printf()函数输出字符串即可。这个题主要利用字符0~9的ASCII码值,字符’0’的ASCII值为48,依次,’1‘为49……连接前两个字符串的后面都有’\0’,连接时将字符串1后面的‘\0’取消,只在新字符串最后面保留’\0’。但自己对“0”的理解不对,字符数组的“0”即是"\0"(字符串结束的标志),而不是字符’0‘;原创 2023-05-10 22:13:33 · 3301 阅读 · 4 评论 -
有序序列中插入一个整数
从最大的数也就是数组组下标为n-1的元素比较,若是m<a[n-1],则把这个数“移到”它后面(也就是赋值),m再和数组下标为n-2的元素进行比较,若是m<a[n-2],就把这个数“移到”后面,若此时m≥a[n-2],就把m放在数组下标为n-1的位置上。(前面已经把下标为n-1的元素“移到”后面一位,现在n-1这个位置虽然还存放着最初的初值,此时可以方便理解,理解为“垃圾值”)其实都可以,但是我觉得从右边(也就是最大的数)依次开始比较,程序比较简单些。然后8和7比较,8>7,8就填到7后面的一位。原创 2023-05-08 15:00:28 · 280 阅读 · 2 评论 -
C语言刷题(1)----指针数组
键盘输入一个长度为len的字符串(1=<len<30),再输入一个正整数m(1=<m<=30),将此字符串中从第m个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。输入10个数,将第一个元素和最后一个元素交换,第二个元素与倒数第二个元素交换……1.键盘输入一个字符串,编写代码获取字符串的长度并输出,要求使用字符指针实现。键盘随机输入6个整数,将这些数据保存到数组中,利用指针遍历数组中的元素并打印。编写一个函数,实现两个整数的互换,要求采用指针的方式实现。原创 2023-05-07 14:29:46 · 544 阅读 · 0 评论 -
数组算法:倒置,查找,插入,删除
这时,可能要考虑到数组元素的奇偶问题。若元素个数为偶数,那么都可以实现一一交换。若元素个数为奇数,则会留下最中间的一个元素。定义两个变量i和j,i=0,j=n-1,每交换一次,i++,j–。只要i<j,就使循环一直进行。原创 2023-04-20 21:54:20 · 185 阅读 · 0 评论 -
迭代法解决递推问题:数列和,sinx,ex的近似值
首先,a和n都需要从键盘上输入。根据递推关系,后面一项等于前一项乘以10加a 的值乘以(-1)。有问题的for循环。原创 2023-04-20 15:17:08 · 469 阅读 · 0 评论 -
循环结构 程序举例
求n! 求1!+2!+3!+……+n!求数列的和 求cosx的近似值原创 2023-03-28 20:28:13 · 156 阅读 · 0 评论 -
笔记||for循环
for循环基础内容原创 2023-03-18 15:02:28 · 40 阅读 · 2 评论 -
笔记||if 语句
2023.3.12 ---if语句原创 2023-03-12 10:23:45 · 543 阅读 · 1 评论