学习基础C语言之四

这是一条从中午开始编辑的博文:突然想写,是因为灵感突袭:自己通过对比这两天学的动态库与静态库的创建以及今天Makefile的运用,总结出了至关重要的一点,无论哪种方式,最为关键的一步都是生成.o文件(即目标文件):运用动态库与静态库时,则还需要调用库函数,而运用Makefile则完全不需要。

今天真的学的有点精疲力尽了、一下子给我灌输如此之多的知识、通并快乐着:

一、如何使用Makefile:

1、首先创建源文件:main.c add.c sub.c

2、创建Makefile或者makefile(vim Makefile),最好使用Makefile;Makefile里面是一些编译规则,告诉编译器如何编译源文件

3、Makefile书写规则:

目标:依赖文件

         命令

解释:通过对“依赖文件”执行“命令”来生成“目标文件”

main :main.c add.c sub.c

          gcc main.c add.c sub.c -o main

eg:

main:main.c add.c sub.c 

        gcc mian.c add.c sub.c -o main

clean:

        rm -f *.o main                //只是告诉你接下来要执行的是一个命令而已;不需要依赖文件,可以把clean的名字换成其它的

可拆解为:

main:main.o add.o sub.o -o main

        gcc main.o add.o sub.o -o main

mian.o:main.c

            gcc main.c

add.o:add.c

           gcc add.c

sub.o:sub.c

        gcc sub.c

#定义变量

cc = gcc

TARGET = main

OBJ = mian.o add.o sub.o

$(TARGET):$(OBJ)

                $(cc)$(OBJ) -o $(TARGET)

$(OBJ):%.o:%.c

            $(cc) -c $<

引用变量:

    $(变量的名字)

二、数组 

什么是数组?为什么需要数组?有了数组之后有什么好处?没有数组会怎么样?对于数组有哪些操作?

1、什么是数组:

“相同数据类型”的一些数的集合!

2、为什么需要数组?

对于数据之间有紧密联系的相同类型的数据,我们可以用数组的方式来定义;

3、有了数组之后有什么好处?

①:减少了错误发生的概率;

②:体现出了数据和数据之间的紧密联系;

4、定义数组和定义变量:

    数组:一排一排的盖房子,之间有联系性;

    变量:独栋别墅;

5、数组的分类:

一维数组和二维数组;(根据维度来分)

整型数组、字符型数组、浮点型数组.......(根据数据类型来分)

对于一维数组:

1、定义:数组的数据类型        数据的名字[常量或者常量表达式];

                        int                        num[]

2、初始化:

    int main[5] = {1,2,3,4,5};

   int main[5] = {1,2,3};   

   int main[5] = {0}; 

   int main[5] = {3};  

   int main[] = {1,2,3,4,5};

//计算数组的元素个数:总价/单价

3、给数组赋值:

int main[5];

num[2] = 10;                            //将10这个数据保存到num[2]所对应的空间里;此时的num[2]就相当于空间的名字;

num[2] = num[10]                  //将num[10]里面的数据保存到num[2]里面去

4、引用:int num[N];

下标法:数组的下标从0开始,最后一个的下标是N-1;

num[i] 做左值,表示空间;

num[i]做右值,表示数据;

二维数组:

1、定义:数组的数据类型        数组名[常量表达式][常量表达式]

                            int                 num[3][3];

2、初始化:

int num[3][3] = {};

 

假设我的电脑是:4G = 1024*4M = 1024*4*1024KB = 1024*4*1024*1024Byte(字节)

    int a = 4;

每个字节都是有地址的!一个 字节一个地址!

引用:int num[N][M];

下标法:数组的下标从[0][0]开始,最后一个下标是a[N-1][M-1];

num[i][j]做左值,表示空间;

num[i][j]做右值,表示数据;

注意的是:

二位数组在内存里面是按行进行存放的

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值