C语言
now
讀书会上瘾
展开
-
C语言——typedef关键字的应用
printf("%d号叫%s,是个%c\n",pp->num,pp->name,pp->denger);printf("%d号叫%s,是个%c\n",p->num,p->name,p->denger);printf("%d号叫%s,是个%c\n",p.num,p.name,p.denger);原创 2023-03-27 21:53:46 · 58 阅读 · 0 评论 -
C语言——typedef关键字介绍
一般配合结构体用,方便,不用每次都struct开头。typedef关键字介绍。给已经有的变量类型起名字。原创 2023-03-27 21:49:00 · 76 阅读 · 0 评论 -
C语言——enum枚举类型
可以指定列表中枚举数的值,往后依次自加,对于前边数字依旧从1开始自加。比如星期几,son mon tue wed thu fri sat。定义枚举类型如下,列表中的名字,自己可以定义,无需像变量一样去申请。if(w1<wed){//枚举变量可以单独拿出来用。c编译器把它当作常量处理,也称枚举常量。//中间用逗号隔开,默认第一位从0开始。可以忽略枚举类型名,直接定义枚举变量。如果一个变量只有几种可能类型。原创 2023-03-27 21:47:58 · 63 阅读 · 0 评论 -
C语言——共用体的应用
printf("请输入你的职业,s为学生,t为老师\n");学生的数据中包括:姓名、号码、性别、职业、班级,printf("请输入学生的班级\n");printf("请输入学生的姓名\n");printf("请输入学生的号码\n");printf("请输入学生的性别\n");printf("请输入老师的职务\n");printf("请输入老师的姓名\n");printf("请输入老师的号码\n");printf("请输入老师的性别\n");有若干个人员的数据,其中有学生和教师,要求用同一个表格来处理。原创 2023-03-27 21:41:36 · 228 阅读 · 0 评论 -
C语言——union共用体/联合体
同一块空间,有时候存放char类型、有时候存放int型,有时候存放double型。1、结构体元素有各自单独空间,共用体元素共享空间,空间大小由最大类型确定。printf("结构体t1=%d\n",sizeof(t1));printf("共用体u1=%d\n",sizeof(u1));有时候同一个内存空间存放类型不同,不同类型的变量共享一块空间。2、结构体元素互不影响,共用体赋值会导致覆盖(一定要注意)double ddata;//double占用空间8字节。像结构体,但是有区别。原创 2023-03-27 21:39:20 · 68 阅读 · 0 评论 -
C语言——函数+指针形式来做选票系统
printf("候选人%s以%d票当选,废票是%d\n",max->name,max->ticket,*feipiao);printf("第%d个选民名字为%s,得票%d\n",i+1,p->name,p->ticket);printf ("请输入%d个选民的名字:\n",i+1);printf ("请输入有几个人参选\n");printf("没有此候选人,弃票\n");原创 2023-03-27 21:35:32 · 63 阅读 · 0 评论 -
C语言——选票系统用指针方式实现
printf("候选人%s以%d票当选,废票是%d\n",max.name,max.tickets,feipiao);printf("%s选举者得票%d\n",p->name,p->tickets);include <string.h>//memset函数需要添加此头文件。printf("请输入第%d个选手名字:\n",i+1);//唱票环节,输入的名字与被选者相等,则其票数+1。printf("你要把票投给谁:\n");printf("没有此候选人,弃票");//没有此候选人,弃票。原创 2023-03-26 22:09:53 · 55 阅读 · 0 评论 -
C语言——结构体&指针&数组
struct Student arr2[3]={{2,"张三",'g',17,99.5,"北京"},//结构体为其中的域列表。printf("学号:%d,名字:%s,年龄:%d,分数:%f,地址:%s\n",int arr[3]={1,2,3};{4,"王五",'g',19,95.4,"内蒙"}};{3,"李四",'b',18,97.6,"上海"},原创 2023-03-26 22:07:46 · 38 阅读 · 0 评论 -
C语言——结构体的指针变量
/使用->访问cdata。//类型 名 值 地址。结构体也是变量,变量访问有两种方式:1.变量名 2.地址。//修改cdata的数据。指针就是地址,指针变量就是存放地址的变量。通过结构体指针访问结构体用'->'来访问。结构日指针变量的引入。原创 2023-03-26 22:05:07 · 239 阅读 · 0 评论 -
C语言——结构体数组应用之选票系统
printf("候选人%s以%d票当选,废票是%d\n",max.name,max.tickets,feipiao);printf("%s选举者得票%d\n",xm[i].name,xm[i].tickets);#include <string.h>//memset函数需要添加此头文件。printf("请输入第%d个选手名字:\n",i+1);//唱票环节,输入的名字与被选者相等,则其票数+1。printf("你要把票投给谁:\n");printf("没有此候选人,弃票");//没有此候选人,弃票。原创 2023-03-26 21:44:29 · 494 阅读 · 0 评论 -
C语言——结构体&数组的结合
struct Student arr2[3]={{2,"张三",'g',17,99.5,"北京"},//结构体为其中的域列表。printf("学号:%d,名字:%s,年龄:%d,分数:%f,地址:%s\n",int arr[3]={1,2,3};{4,"王五",'g',19,95.4,"内蒙"}};{3,"李四",'b',18,97.6,"上海"},原创 2023-03-26 21:05:19 · 314 阅读 · 0 评论 -
C语言——结构体的赋值&输出(输入两个学生的名字、学号、成绩,输出成绩高的学生信息)
struct Student stu2={2,"张三",'g',17,98.5,"北京"};struct Student stu2={2,"张三",'g',17,98.5,"北京"};printf("学号:%d,年龄:%d,成绩:%2f,地址:%s,姓名:%s\n",printf("学号:%d,年龄:%d,成绩:%2f,地址:%s,姓名:%s\n",printf("学号:%d,年龄:%d,成绩:%2f,地址:%s,姓名:%s\n",stu1.num=1;printf("成绩比较好的是:\n");原创 2023-03-26 21:02:53 · 1455 阅读 · 0 评论 -
C语言——strcpy为结构体赋值
struct Student stu2={2,"张三",'g',17,98.5,"北京"};printf("学号:%d,年龄:%d,成绩:%2f,地址:%s,姓名:%s\n",printf("学号:%d,年龄:%d,成绩:%2f,地址:%s,姓名:%s\n",include <string.h>//strcpy api使用需要添加此头文件。stu1.num=1;//内部结构赋值,点运算符来访问结构体中的成员变量(域)strcpy(stu1.addr,"福州");初始化一个变量体并引用,初始化、引用。原创 2023-03-26 20:59:46 · 289 阅读 · 0 评论 -
C语言——struct结构体
struct结构体的使用原创 2023-03-26 20:56:50 · 65 阅读 · 0 评论 -
C语言——strcmp函数(字符串的比较)
strncmp——原型int strncmp(const char*s1,const char*s2,size_t n)strcmp——原型int strcmp(const char*s1,const char*s2)若str1=str2,则返回零;while(*str1&&*str2&&(str1==str2)){//判断两个字符串相等。若s1>s2,则返回大于0的值,若s1<s2,则返回小于0的值。功能是把str1和str2进行比较,最多比较前n个字节,若str1和str2的前n个字符相同,则返回0。原创 2023-03-26 20:51:30 · 810 阅读 · 0 评论 -
C语言——strcat函数(字符串拼接)
拼接——strcat——原型——char*strcat(char*dest,const char*src)把src所指向的字符串(包括'\0')复制到dest所指向的字符串后面(删除*dest原来末尾的'\0')要保证*dest足够长,以容纳被复制进来的*src,*src中原有的字符不变,返回指向dest的指针。assert(des!=NULL&&src!assert(des!=NULL&&src!#include<assert.h>//断言需要添加的头文件。字符串拼接strcat使用及实现。原创 2023-03-26 20:49:06 · 537 阅读 · 0 评论 -
C语言——assert函数(断言用法)
/与if用法一样,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用abort来终止程序运行。//传参,传给自行实现copy的函数从*p copy数值给str,//使用assert的缺点是,频繁使用会极大影响程序的性能,增加额外的开销。D:\代码\第七章>a.exe。C语言assert(断言)用法。原创 2023-03-25 16:29:41 · 280 阅读 · 0 评论 -
C语言——自己实现字符串的拷贝
char* myStrncpy2(char *des,char *src,int count)//方法二。if(des==NULL||src==NULL){//如果判断出来des或src为空,直接返回空值。if(des==NULL||src==NULL){//如果判断出来des或src为空,直接返回空值。if(des==NULL||src==NULL){//如果判断出来des或src为空,直接返回空值。char* myStrcpy3(char *des,char *src)//方法三。原创 2023-03-25 16:24:02 · 285 阅读 · 0 评论 -
C语言——字符串常用的api
—原型char*gets(char*str);C语言字符串常用的api。原创 2023-03-25 16:18:54 · 59 阅读 · 0 评论 -
C语言——malloc、free、strcpy、realloc、memset函数
当重新用malloc开辟新空间后指针指向该新空间,前边用malloc开辟的空间悬空,需要用free释放内存空间。扩容realloc——函数原型void*realloc(void*ptr,size_t size)—c库函数void*malloc(size_t size)分配所需的内存空间,并返回一个指向它的指针。memset——函数原型void*memset(void*str,int c,size_t n)NULL——用于将指针悬空(不指向任何位置)——当被需要时能转换成所需的任何类型的指针。原创 2023-03-25 16:16:28 · 190 阅读 · 0 评论 -
C语言——sizeof和strlen的区别
size计算的值为所有空间的大小strlen计算的值为实际字符数需要添加头文件#include原创 2023-03-25 16:11:03 · 42 阅读 · 0 评论 -
C语言——字符串(定义、用法、内存存放方式、结束标志)
注意指针的操作,保存地址可以——修改指向——指向字符串常量的地址空间;2、和整形数组一个道理——char str[]={'h','e','l','l','o'};3、改进——char str[]="hello";//字符串变量,可以修改。4、一般用char *p="hello"//字符串变量,不允许修改。和整形数组在存储上的区别,字符数组的存储方式,多了结束标志'\0'1、和整形一样——int data[]={1,2,3,4,5};回忆如何计算数组的大小及数组元素的个数。C语言字符串——就是字符数组。原创 2023-03-25 16:02:56 · 222 阅读 · 0 评论 -
C语言——各种指针的定义
各种指针的定义原创 2023-03-25 15:54:11 · 387 阅读 · 0 评论 -
C语言——二级指针(多级指针)
int **p;很多东西和一级指针一样差别就是保存的是指针变量的地址,原创 2023-03-25 15:49:19 · 119 阅读 · 0 评论 -
C语言——有a个学生,每个学生b门课程,找出其中有不及格的课程的学生及学生号
有a个学生,每个学生b门课程,找出其中有不及格的课程的学生及学生号。a为第几位同学,b为第几门科目。原创 2023-03-25 15:45:51 · 222 阅读 · 0 评论 -
C语言——指针函数(返回指针值的函数)
承接的是个指针,返回的值需要对应为指针原创 2023-03-25 15:42:49 · 892 阅读 · 0 评论 -
C语言——函数指针数组
函数指针数组,表示对应的几个函数,具体看代码原创 2023-03-24 16:57:11 · 42 阅读 · 0 评论 -
C语言——指针数组
定义一个指针数组int *p[4]由于[]比*优先级高,因此p先与[4]结合,这是一个数组,p数组有4个元素然后再与前边*结合,*表示此数组是指针类型的,原创 2023-03-24 16:51:30 · 57 阅读 · 0 评论 -
C语言——函数指针
函数指针定义、用法、代码演示原创 2023-03-24 16:36:58 · 145 阅读 · 0 评论 -
C语言——输入行列只带到对应数值(二维数组)
相当于偏移行列进行寻址原创 2023-03-24 16:25:47 · 136 阅读 · 0 评论 -
C语言——数组指针,真正等同于二维数组
数组指针才是真正等同于二维数组原创 2023-03-24 16:14:41 · 83 阅读 · 0 评论 -
C语言——二维数组指针
二维数组指针分为父数组和子数组,可以用for循环来取内容原创 2023-03-24 16:10:31 · 85 阅读 · 0 评论 -
C语言——将数组中的n个元素按逆序(翻转)存放
实现数组翻转原创 2023-03-24 16:05:47 · 897 阅读 · 0 评论 -
C语言——函数封装数组初始化
对数组的进行赋值、打印进行函数封装原创 2023-03-24 16:00:40 · 85 阅读 · 0 评论 -
C语言——数组指针见怪不怪
取地址,和下标偏移原创 2023-03-24 15:55:09 · 36 阅读 · 0 评论 -
C语言——数组指针偏移,完成循环指针回到首地址
C语言数组指针的偏移,完成循环需要回到首地址原创 2023-03-24 15:45:04 · 839 阅读 · 0 评论 -
C语言——数组指针偏移(指针增量和数组的关系)
指针与下标法的选择:指针访问效率高于下标数组名的访问效率但是只有在指针正确访问时,才能比下标更有效率下标法更容易理解,在可读性方面更有优势原创 2023-03-23 17:11:49 · 373 阅读 · 0 评论 -
C语言——指针变量指向数组
可以用一个指针变量指向一个数组元素原创 2023-03-23 17:06:37 · 488 阅读 · 0 评论 -
C语言——指针指向固定区域,单片机或寄存器的固定地址
C语言指针指向固定区域,单片机或寄存器的固定地址原创 2023-03-23 17:06:34 · 345 阅读 · 0 评论 -
C语言——封装一个函数,实现两个数的交换
需要通过指针间接访问的方式修改原值,否则通过直接访问的方式值传递只是改变了局部变量,并没有修改原值原创 2023-03-23 17:04:54 · 331 阅读 · 0 评论