C

作者: 候西利 | 来源:发表于2020-01-27 00:22 被阅读0次

1.函数

void (*p)();

函数指针;相当于函数变量,可以将函数引用赋值给它,赋值时候不调用

void *p(){}

指针函数;返回值是指针的函数,返回用* ,引用用&

2.内存原理

c语言内存比较简单; 分运行时的栈,堆 和编译时的bss,数据段,代码段,

因为C语音没有虚拟机是直接编译成汇编语言

3.指针数组与数组指针

数组是内存中连续的一段数据集合

可以用指针操作数组,默认指向数组的第一个位置 可以通过+1移位操作数组中下一个位置的数据

int *p[3];

指针数组指的是存放指针的数组,存放的只能是指针

int a[3][4];

int (*p)[4];

p=a; //相当于p=a[0]或者是p=a[0][0]

p++;//相当于a[0][ ]移位到a[1][ ]

数组指针类似于二维数组

4.结构体和共同体

struct Student{

}s1,s2;

main(){

    s1.xxxx;

}

或者

struct Student{

};

main(){

    struct Student student;

    student.xxxx;

}

类似于java类,长度是最大变量和变量数目的相乘,目的是为了保证内存对齐

union:在一段代码段内,只能有一个变量值,声明的变量共用一个内存地址,所以长度等于占字节最多的声明变量

5.动态库与静态库

so/all和a/lib文件

区别在于运行时和编译时,

动态库需要通过system.loadLibrary()加载文件,静态库不需要,编译时已经完成了文件的load,但是文件较大

相关文章

网友评论

      本文标题:C

      本文链接:https://www.haomeiwen.com/subject/vqtsthtx.html