入职以后,对于以前不怎么接触或者忘记不怎么能回忆起来的部分编程知识,我做了一些笔记,想把他们记录在这里,以便能够给万一遇到同样问题的人一点点的参考。或许在大牛眼里,我这些都是基础,但是在我这个新人眼里,还是需要慢慢积累呀!以后慢慢不断更新……
1.关于变量初始化以及指针初始化,变量没有初始化的话,在很多编译器下默认值为0,但是也不能保证完全没有非0的情况出现,与此同时,指针在没有初始化时,在devc++这个IDE下,默认值不是NULL,因此为了避免出现问题,还是在定义变量的时候,对其均进行初始化操作。
2.在编译器里,当判断条件是if(0 == NULL)或者int i = 0;if(i == NULL)时,均可以满足判断条件,但是有些编译器会提醒,将interger变量和pointer变量进行比较,所以从根本上来讲,0和空指针并不是完全等价的,为了提升自己的编程规范,所以尽量还是规避此操作。
3.链表:初始时,有一个链表,头指针为head,还有一个孤立节点,由指针p指向。在将该孤立节点插入到链表时,所需要进行的操作是让head指向之前p指向的节点,而p指向的节点的next域指向之前head指向的节点即可。即:p->next = head;head = p;就可以完成插入的操作。
4.动态链表的生成过程:
在定义动态单向链表的过程中:至少需要定义三个结构体指针,struct student head,struct student p1,struct student p2;
5.typedef 原有变量名 新的变量名
例如typedef int(Pointer)();//声明Pointer为指向函数的指针类型,该函数返回整型值
Pointer p1,p2;//p1,p2为Pointer类型的指针变量Pointer就相当于int()()
6.指向文件的指针变量并不是指向外部介质上的数据文件的开头,而是指向内存中的文件信息区的开头。
7.exit(0)函数声明在<stdlilb.h>中,其中exit(0)和return 0的区别在于后者只是终止整个函数,但是前者是终止整个程序。
8.关于void和其他类型的转换,当把其他类型赋值给void时,直接用=号进行赋值即可,但是如果想要把void类型转换为其他类型,则需要在其前面添加强制类型转换。
9.fopen函数可以用来打开文件,调用方式为:fopen(“文件名”,“使用文件方式”);返回值是指向文件的指针,使用文件的方式包括:
使用方式 含义 指定文件不存在
r 为了输入数据,打开一个已经存在的文本文件, 出错
w 为了输出数据,打开一个文本文件 建立新文件
a 向文本文件尾添加数据 出错
rb 为了输入数据,打开一个二进制文件 出错
wb 为了输出数据,打开一个二进制文件 建立新文件
ab 向二进制文件尾添加数据 出错
r+ 为了读和写,打开一个文本文件 出错
w+ 为了读和写,建立一个新的文本文件 建立新文件
a+ 为了读和写,打开一个文本文件 出错
rb+ 为了读和写,打开一个二进制文件 出错
wb+ 为了读和写,建立一个新的二进制文件 建立新文件
ab+ 为读写打开一个二进制文件 出错
出错的时候,该函数会返回一个空指针NULL。
关闭文件用fclose函数,函数的使用方法为:fclose(文件指针),如果不关闭文件将会丢失数据。fclose函数成功执行关闭操作,则返回值为0,否则返回值为EOF(-1)。
10.读写一个字符的函数
函数名 调用形式 功能 返回值
fgetc fgetc(fp) 从fp指向的文件读入一个字符 读成功,带回所读的字符, 失败则返回文件结束标志 EOF(即-1)
fputc fputc(ch,fp) 把字符ch写到文件指针变量fp 输出成功,返回值就是输出
所指向的文件中 的字符,输出失败返回EOF
C语言编程小知识一
最新推荐文章于 2024-05-31 16:44:42 发布