C学习总结

学习了一段时间C语言了,一直想写点什么总结的,但是迫于每次的学习时间都比较紧迫,就一直耽误了,今天就借此休息时间来总结下近来的C语言学习情况。
个人认为编程语言的学习都是一条道路,语法规则大同小异,操作流程只要按部就班即可,算法也一样,只不过是步骤比较巧妙。

文件操作

1,创建文件指针

FILE *pf = NULL;

2,文件指针操作

pf = fopen("file_path","open_file_mode");

3,错误排查(这一步切不可忽略)

if(NULL == pf)
这一步在文件指针的操作中是必须要有的,要不然很容易造成对
文件指针的错误操作。

4,接下来就是对文件指针的各种操作

5,对文件指针操作完毕一定得关闭文件指针

fclose(pf);
pf = NULL;

链表的操作

对于链表的操作基本的操作包括增,删,改,查。其中最基本的当属于对单链表的操作,单链表有包括有无头节点的链表(对于链表的操作需不需要包括头节点因人而异,可更具具体的需求)。

1,创建结构体数据类型(创建链表节点)

typedef struct node
{
    int data;//此处是节点的数据区域,个人更具需求定义
    struct node *pNext;//存储链表当中下一节点的地址
}linkedlistNode;

2,为节点创建堆空间

linkedlistNode *pNode = (linkedlistNode *)malloc(sizeof(linkedlistNode));

3,错误排查

if(NULL == pNode)
对于链表来说这一步操作时必须的,不然会造成对指针的错误操作

4,为节点插入数据

pNode->data = data;
pNode->pNext = NULL;//这一操作也很重要,不用的指针一
定要置空,不然当你循环遍历链表时就会出错。(本人在window
和Linux)上测试都会出现段错误。

5,以上步骤操作完成就可以把新创建的节点插入到链表当中了。

//添加节点
void addNode(linkedlistNode **pHeadNode);
//删除节点
void delNode(linkedlistNode **pHeadNode,int data);
//修改节点
void chgNode(linkedlistNode **pHeadNode,int data);
//查找节点
void findNode(linkedlistNode **pHeadNode,int data);
对于函数的操作我一般本着的原则是:换回值必须有以供调用函数判断是否调用函数操作成功,一般可以:返回-1代表调用操作失败,返回0代表调用操作成功,具体的也可以创建枚举类型表示返回标志。
eg:
typedef struct returnValue
{
    FAILURE = -1;
    SUCCESS = 0;
}functionReturnFlag;
或者
typedef struct returnValue
{
    FAILURE = 0;
    SUCCESS = !FAILURE;
}functionReturnFlag;

数据的作用域和生存周期

局部变量,

局部变量的作用域只限于当前定义的函数内部使用或者代码块中使用eg:

void fun()
{
    int localVar = 0;//函数内部的局部变量
    {
        int blockVar = 0;//函数内部代
                       //码块中的局部变量
        int localVar = 10;//这也是可以的
    }
}

以上定义的变量的作用域和生出周期是一样的。

全局变量,静态局部变量

全局变量的生存周期和作用域

(continue……)

你可能感兴趣的:(C语言)