嵌入式学习笔记(第六天)c语言续

来源:互联网 发布:在堪萨斯大学读书 知乎 编辑:程序博客网 时间:2024/04/28 00:27

数组 :将同类型的同作用的变量,放在一起统一管理,

             所有元素,在内存中,都是连续储存的,

             数组在声明的时候就需要确定多少个元素,内存空间是一次性开辟成功

            使用数组的某一元素,需要使用数组名加下标的方式使用,下标从零开始计数

          数组初始化

             int arr[5]={0};   arr[0] 数组首地址

数据类型:

      基本数据类型

      指针类型     

      枚举类型

指针--> 指针类型变量  

     *p1=a;

     p1=&a; 

      指针只是一个存储地址编号的变量

      指针类型只是普通数据类型之一

      *p  间接引用  可以取到或修改 这块内存地址上储存的内容  

      指针的指针   二级指针   **p1

 

       指针数组   数组中全是指针的数组  

       1 , 在数组中移动

       * , 取出对应地址的内容   

int a = 2;

int b = 3;

int c = 4;

int * p1 = &a;

int * p2 = &b;

int * p3 = &c;

int * parr[3] = {p1,p2,p3};

for(i = 0 ; i < 3 ; i++)

{

printf("%d\n",**(parr + i));

}

      二维数组 a[][]   可看成多个一维数组

     Int arr[][] ==  int arr []

                     Int arr[]    相同列数的 多个一维数组

   *(arr+1) 在一个数组中移动,移动了一列  ==arr[0]-->arr[1]

   arr 行指针

   行指针加*变成列指针

   列指针加&变行指针

  字符串 实现基于字符数组

字符串有有效字符

字符串结束标志:'\0'

声明字符串就是声明一个字符数组  

 

strcmp (arr,brr)==0  比较字符串是否一样

strlen(name1)==strlen(name2) 确定字符串是否一样

strlen(name);  字符串有效位是多少

sizeof(name);  name储存宽度   

strcat (name1,name2);    name2接到name1后输出   越界问题 name1储存空间是否够容纳name2 

strcpy  str1,str2)  把二拷贝给一 

char name[20] = "jack";

int age = 40;

char result[50];

sprintf(result,"姓名:%s,年龄:%d",name,age);   将“”里的内容作为result  

printf("%s\n",result); 

   函数

   return 函数名(needs)   返回值 函数名 参数需求  

   void myprintf();                 void 不需要返回

   Int myprintf();                  返回值为int型变量

   形参 :在声明函数时,用来代替真实输入值   

   实参: 函数调用时,输入的真实值 

    不需要改变外界的值的时候,传变量本身,也就是赋值   传值

    要改变外界的值的时候,传变量的地址。    传址


   头文件 包含   

   aa .c --->aa .h

   .h 文件中  写入函数声明及宏定义

   #ifndef _filename_h_

   #define _filename_h_

   宏定义  #define NAME_LEN 20

   函数声明;

   #endif

 

gcc编译器处理步骤:

        预处理    -E

         汇编    -S

         编译    -c

      gcc -c a.c -o a.i      -o  给新名字

 

    make 编译管理工具   

建立makefile文件格式

main:main.o a.o b.o

gcc main.o a.o b.o -o main

main.o:main.c

gcc -c main.c -o main.o

a.o:a.c

gcc -c a.c -o a.o

b.o:b.c

gcc -c b.c -o b.o

 

    变量 : 必须先声明    声明可以多次 ,不开辟空间。  定义只能一次 , 会开辟空间。

    后定义

         再使用       

 

    关键字 static  静态变量 :生命周期变长,整个程序存续期间都存在 ,值能够保存下来,初始化语句只运行一次  

             extern   声明外部变量 , 告诉编译器,变量声明在别的文件 ,暂时忽略定义错误,一般用在全局变量上   

原创粉丝点击