C语言
落花 ,流水(zmf)
这个作者很懒,什么都没留下…
展开
-
结构体指针综合处理(学生成绩管理)
printf("名字:%s 成绩:%d\n", p->name, p->chengji);//此处不能用*p,*表示运算符取地址的意思.指针循环之后往回走到指针头。//此处的*表示标识符申明变量*/printf("请输入名字:\n");printf("请输入分数:\n");//for循环里要指针++;//此处为指针头,要++遍历。原创 2023-04-04 23:42:24 · 34 阅读 · 0 评论 -
链表的插入(从节点后插入)
链表的插入原创 2023-03-09 17:20:07 · 50 阅读 · 0 评论 -
链表的节点个数与查找
链表的节点个数与查找原创 2023-03-09 15:36:43 · 54 阅读 · 0 评论 -
链表静态添加和动态遍历
链表静态添加和动态遍历原创 2023-03-09 01:28:21 · 35 阅读 · 0 评论 -
链表和数组的区别
/和结构体同类型的指针。//前一个变量存放着后一个变量的地址。原创 2023-03-09 00:24:29 · 26 阅读 · 0 评论 -
结构体指针表示学生成绩
printf("名字:%s 成绩:%d\n",p->name, p->chengji);p = p -len;//此处不能用*p,*表示运算符取地址的意思.指针循环之后往回走到指针头。//此处的*表示标识符申明变量*/printf("请输入名字:\n");printf("请输入分数:\n");//for循环里要指针++;printf("请输入总人数\n");原创 2023-03-05 22:37:59 · 82 阅读 · 0 评论 -
结构体指针
printf("学号:%d 姓名:%s\n", p->xuehao, p->name);printf("学号:%d 姓名:%s\n", p->xuehao, p->name);printf("学号:%d 姓名:%s\n",d1.xuehao,d1.name);printf("地址:%p\n", p++);printf("结构体增加之后的地址是:%p\n",p);strcpy(p->name,"李四");原创 2023-03-05 21:53:17 · 29 阅读 · 0 评论 -
结构体求最大最小值
printf("最低分为:%d:%s\n", min.fengshu, min.name);printf("最高分为:%d:%s\n", max.fengshu,max.name);printf("第%d个学生的名字和分数是:\n", i + 1);printf("请输入第%d个学生的分数\n", i + 1);printf("请输入第%d个学生的名字\n",i+1);原创 2023-03-04 17:49:59 · 206 阅读 · 0 评论 -
结构体里的指针细节错误
/ strcpy(d2.p, "中国共产党万岁");此处使用野指针会出现段错误。strcpy(d1.p, "中国共产党万岁");strcpy(d2.p, "中国共产党万岁");原创 2023-03-04 12:00:19 · 27 阅读 · 0 评论 -
结构体二2
结构体的调用和普通调用的区别原创 2023-03-04 11:21:08 · 34 阅读 · 0 评论 -
for循环语句
结果原创 2022-09-07 21:29:57 · 42 阅读 · 0 评论 -
有两个参数的函数之间的加法
结果有问题原创 2022-09-12 20:40:58 · 57 阅读 · 0 评论 -
加减乘除计算器
结果有误原创 2022-09-16 11:01:58 · 137 阅读 · 0 评论 -
形式参数和局部变量的异同点
形式参数也是局部变量,有作用限制仅限于该函数(决定了该函数生效范围)生存周期类似原创 2022-09-08 22:35:09 · 118 阅读 · 0 评论 -
if else语句的嵌套使用
printf("不嫁,没钱房子");printf("不嫁,没房子");printf("嫁");printf("请输入彩礼钱");原创 2023-03-02 22:32:07 · 64 阅读 · 0 评论 -
C结构体一
/行为:函数指针(自我介绍)printf("结构体: xuehao = %d\n", stu1.xuehao);printf("结构体: score = %d\n", stu1.fengshu);printf("结构体: xuehao = %d\n", test.xuehao);printf("结构体: name = %s\n", test.name);printf("结构体: name = %s\n",stu1.name);printf("结构体: = %d\n", test.fengshu);原创 2023-03-02 22:18:26 · 28 阅读 · 0 评论 -
自己封装实现字符串二
/字符串的结尾是'\0'return NULL;//字符串的结尾是'\0'//myStrncpy(dest, src,4);原创 2023-02-20 21:39:39 · 24 阅读 · 0 评论 -
自己封装实现字符串操作一
void myputs(char *p)//变量的声明形式参数char*p,字符串的特点结尾有'\0'.输出。void myMemset(char* p, char c, int size)//计数长度。printf("长度:%d\n", myStrlen(p));printf("你输入的字节数是:%d\n",n);int myStrlen(char* str)//初始化。myputs("请输入你的字符串:\n");int mygets(char *p)//输入。printf("内存非法");原创 2023-02-20 19:03:42 · 28 阅读 · 0 评论 -
查找子符(strchr)查找子串(strstr)转大小写(strlwr/strupr)分割(strtok)
/用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;//windows环境下字符串必须定义为数组型,否则报错。//查找字符串,在一个串中查找给定字符的第一个匹配之处。puts("未找到该字符");puts("找到了该字符");puts("未找到该字符");puts("找到了该字符");原创 2023-02-18 22:54:30 · 99 阅读 · 0 评论 -
字符串的常用API:strpy,strncpy拷贝strcat拼接strcmp比较
/此处要对strDest进行重置。//此处要对strDest进行重置。printf("复制字符串完毕%s\n",strDest);原创 2022-12-12 19:27:48 · 98 阅读 · 0 评论 -
字符串的一些常用API(puts,gets,strlen,memset)
#include#include#includeint main(){ char* str = "我真帅"; puts(str);//此处类似printf,但是会自动空行(\n) //char *pstr[128] ={ '\0'}; //此处申请了128字节的空间并把所有元素都初始化为了'\0' char* pstr;//此处pstr是一个也指针,会造成非法地址访问,出现段错误,cmd窗口会闪退 pst原创 2022-12-03 16:11:25 · 29 阅读 · 0 评论 -
sizeof与strlen在计数时的区别
trlen在遇到'\0'时会停止计数 system("pause");原创 2022-12-03 15:17:55 · 25 阅读 · 0 评论 -
字符串的存储方式
在默认分配下情况下,会自动在后面多分配一个'\0'作为结束的标识符原创 2022-12-03 14:59:34 · 125 阅读 · 0 评论 -
字符串的定义方式及输出
/此处为第三种定义字符串的方式,元素个数不写,会根据真实大小默认分配.char str[3] = {'a','b','c'};//此处为定义字符串的第一种方式,和数组类似。//此处为第四种方式定义字符串,采用指针的方式。//%c表示输出一个字符。//此处为第二种定义字符串的方式。//%s表示输出一个字符串。//此处输出一个\n,即为空一行。原创 2022-12-02 18:52:22 · 376 阅读 · 0 评论 -
函数与指针(函数指针)
/此处定义了一个函数指针参数,该参数的类型大小个数返回值都要和原函数一样并用括号括起来。//先取函数内容再调用(*指针名字)//此处赋值,函数名就是地址.//直接通过指针名字+括号调用。原创 2022-12-02 14:41:47 · 19 阅读 · 0 评论 -
数组与指针(数组指针)
printf("d打印p++的地址%p\n", ++p);//此处偏移值为:3*4=12。printf("d打印p1++的地址%p\n", ++p1);//此处为数组指针,代表整个数组的指针,而非数组的首地址。//此处*p为普通指针,表示数组的首地址。printf("=======区别======\n");printf("打印地址%p\n", &a[0]);printf("打印地址%p\n",p1 );printf("打印地址%p\n", p);printf("打印地址%p\n", a);原创 2022-12-02 14:05:08 · 18 阅读 · 0 评论 -
指针与数组(指针数组)
int *p[3];//此处定义了一个指针数组,该数组里存放的全是指针(地址)printf("%d\n",*(p[i]));//此处*()代表优先级。原创 2022-12-01 20:16:27 · 18 阅读 · 0 评论 -
指针的应用
printf("打印出a:%d\n", a);printf("打印出b:%d\n", b);原创 2022-12-01 19:51:19 · 12 阅读 · 0 评论 -
指针的作用一:可以在某个特定的地址存放数据
/此处的volatile为类型修饰符。printf("在内存的%p地址上面添加/存放一个值%d\n", p1, *p1);printf("先打印出a的地址为:%p\n",p);原创 2022-12-01 19:29:27 · 38 阅读 · 0 评论 -
函数 数组 与指针的结合
printf("您输入的第%d个学生的成绩是:%d\n", i + 1, *datas++);printf("该组学生成绩的平均值(Ave)为:%lf\n", average);printf("该组学生成绩的最大值(Max)为:%d\n", max);printf("该组学生成绩的最小值(Min)为:%d\n", min);printf("成绩的平均值为%lf\n", data3);printf("成绩的最大值为%d\n", data1);printf("成绩的最小值为%d\n", data2);原创 2022-12-01 16:27:13 · 19 阅读 · 0 评论 -
指针的基本概念
printf("直接通过地址打印zhang=%d\n", *(&zhang));printf("直接通过地址打印liao=%d\n", *(&liao));printf("打印a的地址%p\n", a);printf("打印出zhang的地址%p\n", &zhang);printf("直接打印zhang=%d\n", zhang);printf("打印出liao的地址%p\n", &liao);printf("通过地址获取zhang:%d\n",*a);printf("打印b的地址%p\n", b);原创 2022-11-30 16:46:54 · 24 阅读 · 0 评论 -
数组与函数的综合应用
printf("您输入的第%d个学生的成绩是:%d\n", i + 1, datas[i]);printf("该组学生成绩的平均值(Ave)为:%lf\n",average);printf("该组学生成绩的最大值(Max)为:%d\n", max);printf("该组学生成绩的最小值(Min)为:%d\n", min);printf("成绩的最大值为%d\n", data1);printf("成绩的最小值为%d\n", data2);原创 2022-11-29 20:17:46 · 55 阅读 · 0 评论 -
数组名当实际/形式参数,取地址,传值
void test1(int s[],int geshu)//形式参数中写的数组的大小是无效的,只能表示该参数是一个地址.int s[]是数组的首地址,int geshu是数组的元素个数。//s[0]数组s的第一个元素地址。//数组和函数结合,数组名可以当实际参数。printf("函数的大小:%d\n",s[i]);} //数组名直接当作形式参数。原创 2022-11-29 15:58:54 · 79 阅读 · 0 评论 -
数组和函数的结合传值,数组的元素个数
printf("b数组里的元素个数为%d\n", sizeof(b) / sizeof(b[0]));printf("b数组里的元素个数为%d\n", sizeof(b) / sizeof(char));printf("a数组里的元素个数为%d\n", sizeof(a) / sizeof(int));printf("a数组里的元素个数为%d\n",sizeof(a)/sizeof(a[0]));printf("a数组的大小%d\n",sizeof(a));test2(s1);原创 2022-11-29 15:34:50 · 27 阅读 · 0 评论 -
数组的打印传值方式
/putchr输出一个字符,getchar获取一个字符。test2(s1);//数组和函数结合,数组名可以当实际参数。原创 2022-11-28 18:13:39 · 25 阅读 · 0 评论 -
数组初步应用:找最大最小求平均值
printf("您输入的第%d个数是:%d\n", i, s[i - 1]);printf("该数组的平均值为:%lf\n",average);printf( "请输入第%d个数据\n",i+1);printf("该数组里的最小值为:%d\n", min);printf("该数组里的最大值为:%d\n",max );printf("该数组的和为:%d\n", total);printf("数据输入错误\n");原创 2022-11-24 10:59:28 · 66 阅读 · 0 评论 -
数组的加法
printf("从1加到3的和是:%d\n",sum);i++)//对应数组的下标。i++)//对应数组的值。原创 2022-11-22 20:13:54 · 174 阅读 · 0 评论 -
数组的四种表达方式
printf("s3的第%d个元素是:%d\n",i+1,s3[i]);//s3里的第一个数对应的下标为0.printf("s3的第一个元素是:%d\n", s3[0]);printf("s3的第二个元素是:%d\n", s3[1]);printf("s3的第三个元素是:%d\n", s3[2]);原创 2022-11-22 17:10:46 · 316 阅读 · 0 评论 -
最终版计数器,微瑕.
printf("****************请输入您要选择的算法**********\n");printf("乘法结果:%d\n", cheng(data1, data2));printf("减法结果:%d\n", jian(data1, data2));printf("除法结果:%lf\n", chu(data1, data2));printf("加法结果:%d\n", add(data1, data2));printf("您选择了乘法(*)\n");printf("您选择了除法(/)\n");原创 2022-11-22 16:10:50 · 25 阅读 · 0 评论 -
完整版多封装函数计算器
printf("****************请输入您要选择的算法**********\n");printf("乘法结果:%d\n", cheng(data1, data2));printf("减法结果:%d\n", jian(data1, data2));printf("除法结果:%lf\n", chu(data1, data2));printf("加法结果:%d\n", add(data1, data2));printf("您选择了加法\n");printf("您选择了除法\n");原创 2022-11-22 14:53:51 · 39 阅读 · 0 评论