C语言学习笔记

前言

很多知识我学的不够牢靠,所以往往需要查找资料。在此之间发现很多很多博主,他们写的内容非常之详尽,所以从今之后可能就会多出许多的链接,转自其他作者。

一、数组

一维数组

数组:将有限个类型相同的变量的集合命名称为一个数组。
一维数组:像一个有限个数的抽屉排成一行,每个抽屉中都装着一个相同类型的东西,赋予他们一个表示序列的下标,就是他在抽屉中的位置。数组的下标从0-(数组的长度-1)。
定义一个数组:元素类型+空格+数组名[数组长度];
eg:
int arr[10]={0};初始化一个长度为10(下标从0-9)的int类型数组,每个元素的值都是0.
arr[0]表示第0号(即:第一个)元素。
关于数组的初始化:
数组初始化

二维数组

二维数组就像是抽屉里面加了小格子,小格子的个数也是有限的。也可以认为是横纵排列的抽屉,即是先排一行,再排第二行。
eg:
int arr[10][8]={0};
10 为第一维下标的长度,8为第二维下标的长度。(即:10行8列)

string.h

1.C语言没有原生字符串类型,在C语言中使用指针来管理字符串。
2.也可以使用字符数组,而使用字符数组常常需要使用string.h这个头文件,里面包含了一系列的函数方便字符数组的使用。
3.详解链接:
string.h详解

二、函数

函数其实就是数学中的“函数”,在定义好函数(数学中的公式)之后,我们可以使用它。
1.对于全局变量,主函数(即:入口函数int main())和其他的函数中都能使用它,在主函数或者在函数中定义的变量都局限于当前的函数中使用。
2.函数如果定义在使用之前可以不用声明(但是习惯上建议都声明并注释作用等)。
3.在函数内部不能定义函数。
4.函数定义格式:
类型+空格+函数名+(参数列表){函数体}
(1)“类型”指的是函数的返回值的类型,用”return +变量/常量“进行返回,当定为“void”的时候表示没有返回值,可以把结构体作为返回值类型。
(2)函数名和数组名一样本身就是一个地址,所以在指针那里有不同的用法。
(3)参数列表形式(int i,char b…),可以定义多个参数,参数列表中的变量属于只能在当前函数中使用的局部变量。
(4)函数体的内容可以为空,但是当函数有返回值的时候,至少要有return语句返回对应类型的变量。

三、结构体

结构体相当于定义许多变量或者数组的集合,用来描述一个具体“对象”的特征。当然,C语言是面向过程的,不存在对象的说法(只是我感觉结构体的用法其实就是类的样子)。(我学过的:C++是不完全面对对象的语言,Java才是完全面对对象的语言)
结构体:
在C中定义一个结构体类型:
    struct Student
    {
    int a;
    };
这是定义了一个结构体

如果在后面加上名字:
    struct Student
    {
    int a;
    }Stu;
相当于在定义结构体的时候就定义了变量Stu,之后不能再用关键词stuct Student去定义其他变量。

typedef相当于“改名字”:
    typedef struct Student
    {
    int a;
    }Stu;
在声明变量的时候就可:Stu stu1;
这里的Stu实际上就是struct Student的别名。Stu==struct Student(如果没有typedef就必须用struct Student stu1;来声明)

这里也可以不写Student:
    typedef struct
    {
    int a;
    }Stu;
于是也不能struct Student stu1;了,必须是Stu stu1;

如果有多个名字:
    typedef struct
    {
    int a;
    }Stu1,Stu2;
那么都是他的别名。Stu1 stu1;和Stu2 stu2;都可以。

四、指针

这一部分比较复杂,本人才浅,交给其他学友了。
C指针详解
链接内容作者:lulipro-代码钢琴家
出处:http://www.cnblogs.com/lulipro/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。为了获得更好的阅读体验,请访问原博客地址。限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
分类: C语言和操作系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值