![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C深入专题笔记
zhao
多做点笔记,多复习
展开
-
数组与指针
一、指针基础: 指针本质上也是一个变量,需要占用一定的内存空间,用于保存内存地址的值,可以通过指针修改内存中的任意地址内容 常量与指针: const int* p; //p可变,p指向的内容不可变 int const* p; //p可变,p指向的内容不可变原创 2012-12-24 16:45:14 · 416 阅读 · 0 评论 -
函数指针和指针函数
一、函数指针: 指向函数的指针 函数占用内存单元,所以每个函数都有地址,就像每个变量都有地址一样; 1.函数指针定义 函数类型 (*指针变量名)(形参列表);如果去掉括号,就成了指针函数。 2.函数指针的赋值 函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。 例如, int func(int x); /* 声明一个函数 */ int (原创 2012-12-11 09:23:11 · 250 阅读 · 0 评论 -
编译器预处理
一编译过程 预编译-E •处理所有的注释,以空格代替 •将所有的#define删除,并且展开所有的宏定义 •处理条件编译指令#if, #ifdef, #elif, #else, #endif •处理#include,展开被包含的文件 •保留编译器需要使用的#pragma指令 编译-S •对预处理文件进行一系列词法分析,语法分析和语义分析 •词法分析主要分析关键字,标示符,立即数等原创 2012-12-24 18:57:24 · 722 阅读 · 0 评论 -
C语言中内存分配
auto 系统默认属性,在栈上面分配空间 static 修饰的全局变量作用域只是声明的文件中,在其他文件中调用,可利用其地址或新建函数将static变量返回 修饰的函数作用域只是在该函数内 存在静态存储区 register 指明将变量存储于寄存器,申请时不一定能成功,当然不能用&获取该类型变量的值 C中内存分类: 栈:存放参数值,局部变量值,返回原创 2012-12-19 18:21:37 · 266 阅读 · 0 评论 -
extern
extern的两种用法 1:申明外部变量和函数 2:告诉编译器用C语法规则编译 ertern ”C“ { .....原创 2012-12-19 18:24:54 · 286 阅读 · 0 评论 -
内存管理
一动态内存分配包含在 malloc所分配的是一块连续的内存,以字节为单位, 并且不带任何的类型信息 free用于将动态内存归还系统 void* malloc(size_t size); void free(void* pointer);参数为0时,没有任何作用。 虽然malloc申请到的内存可能比实际的大,然而是不定的不能利用编译器的这一行为。如果分配时找不到足够大的内存块会返原创 2013-03-12 15:37:54 · 518 阅读 · 0 评论 -
函数
一程序中的顺序点 顺序点:执行过程中修改变量值的最晚时刻,在程序达到顺序点的时候,之前所做的一切操作必须反映到后续的访问中。 每个完整表达式结束时 &&, ||, ?:, 以及逗号表达式的每个运算对象计算之后 函数调用中对所有实际参数的求值完成之后(进入函数体之前) #include int main() { int k = 2; int a =原创 2013-03-12 15:57:19 · 467 阅读 · 0 评论 -
数组与指针2
数组类型: 数组类型包括数组元素类型及数组大小 int array[5]的类型为int[5] 定义数组类型: c中通过typedef为数组类型重命名: typedef type(name)[size] 之后可以利用该类型定义数组: typedef int(aint5)[5]; aint5 array;//定义了一个int[5]的数组 数组指针: 数组指针本身是一个指针用于原创 2013-03-09 20:23:51 · 325 阅读 · 0 评论