欢迎来到天天文库
浏览记录
ID:52199759
大小:293.00 KB
页数:24页
时间:2020-03-24
《单片机C语言编程基础.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、优先级及预处理另外ANSI标准C还定义了如下几个宏:_LINE_表示正在编译的文件的行号_FILE_表示正在编译的文件的名字_DATE_表示编译时刻的日期字符串,例如:"25Dec2007"_TIME_表示编译时刻的时间字符串,例如:"12:30:55"_STDC_判断该文件是不是定义成标准C程序函数atoi与atof函数名:atoi功能:把字符串转换成长整型数用法:intatoi(constchar*nptr);程序例:###########################################
2、#####################################includeintmain(void){intn;char*str="12345.67";n=atoi(str);printf("string=%sinteger=%d",str,n);return0;}########################################################################################################
3、######################################################函数名:atof功能:把字符串转换成浮点数用法:doubleatof(constchar*nptr);程序例:#includeintmain(void){floatf;char*str="12345.67";f=atof(str);printf("string=%sfloat=%f",str,f);return0;}###############################
4、################################################链表链表是C语言中另外一个难点。牵扯到结点、动态分配空间等等。用结构作为链表的结点是非常适合的,例如:structnode{intdata;structnode*next;};其中next是指向自身所在结构类型的指针,这样就可以把一个个结点相连,构成链表。链表结构的一大优势就是动态分配存储,不会像数组一样必须在定义时确定大小,造成不必要的浪费。用malloc和free函数即可实现开辟和释放存储单元。其中,mall
5、oc的参数多用sizeof运算符计算得到。链表的基本操作有:正、反向建立链表;输出链表;删除链表中结点;在链表中插入结点等等,都是要熟练掌握的,初学者通过画图的方式能比较形象地理解建立、插入等实现的过程。typedefstructnode{chardata;structnode*next;}NODE;/*结点*/正向链表NODE*create(){charch='a';NODE*p,*h=NULL,*q=NULL;while(ch<'z'){p=(NODE*)malloc(sizeof(NODE));/*强
6、制类型转换为指针*/p->data=ch;if(h==NULL)h=p;elseq->next=p;ch++;q=p;}q->next=NULL;/*链表结束*/returnh;}逆向建立NODE*create(){charch='a';NODE*p,*h=NULL;while(ch<='z'){p=(NODE*)malloc(sizeof(NODE));p->data=ch;p->next=h;/*不断地把head往前挪*/h=p;ch++;}returnh;}用递归实现链表逆序输出:voidoutput
7、(NODE*h){if(h!=NULL){output(h->next);printf("%c",h->data);}}插入结点插入结点(已有升序的链表):NODE*insert(NODE*h,intx){NODE*new,*front,*current=h;while(current!=NULL&&(current->datanext;}new=(NODE*)malloc(sizeof(NODE));new->d
8、ata=x;new->next=current;if(current==h)/*判断是否是要插在表头*/h=new;elsefront->next=new;returnh;}删除结点NODE*delete(NODE*h,intx){NODE*q,*p=h;while(p!=NULL&&(p->data!=x)){q=p;p=p->next;}if(p->data==x)/*找到了要删的结点*/{if(p==h)/
此文档下载收益归作者所有