好文档 - 专业文书写作范文服务资料分享网站

C语言进阶知识总结讲义

天下 分享 时间: 加入收藏 我要投稿 点赞

轻松入门 实战应用 技术交流群387220290

数据类型大小

int main() { int a = 10; int b[10] ; printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ getchar(); return 0; } sizeof是操作符,不是函数;sizeof测量的实体大小为编译期间就已确定

数据类型别名

? 数据类型可以理解为固定大小内存块的别名,请问数据类型可以起别名吗? int main() { //Teacher t1; printf(\ printf(\ printf(\ printf(\ getchar(); return 0; } 数据类型的封装

? 1、void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 ? 2、用法1:数据类型的封装

int InitHardEnv(void **handle);

典型的如内存操作函数memcpy和memset的函数原型分别为

轻松入门 实战应用 技术交流群387220290

void * memcpy(void *dest, const void *src, size_t len); void * memset ( void * buffer, int c, size_t num );

? 3、用法2: void修饰函数返回值和参数,仅表示无。 如果函数没有返回值,那么应该将其声明为void型 如果函数没有参数,应该声明其参数为void int function(void) {return 1;} ? 4、void指针的意义

C语言规定只有相同类型的指针才可以相互赋值 void*指针作为左值用于“接收”任意类型的指针 void*指针作为右值赋值给其它指针时需要强制类型转换 int *p1 = NULL;

char *p2 = (char *)malloc(sizoeof(char)*20); ? 5、不存在void类型的变量

C语言没有定义void究竟是多大内存的别名 ? 6、扩展阅读《void类型详解.doc》

数据类型总结与扩展

? 1、数据类型本质是固定内存大小的别名;是个模具,c语言规定:通过数据类型定义变量。

? 2、数据类型大小计算(sizeof)

? 3、可以给已存在的数据类型起别名typedef ? 4、数据类型封装概念(void 万能类型) 思考1:

C一维数组、二维数组有数据类型吗?int array[10]。 若有,数组类型又如何表达?又如定义? 若没有,也请说明原因。

抛砖:数组类型,压死初学者的三座大山

轻松入门 实战应用 技术交流群387220290

1、数组类型 2、数组指针

3、数组类型和数组指针的关系

思考2:

C语言中,函数是可以看做一种数据类型吗? a)若是,请说明原因

并进一步思考:函数这种数据类型,能再重定义吗? b)若不是,也请说明原因。 抛砖:

1.3.2变量本质分析

变量概念

? 概念:既能读又能写的内存对象,称为变量;若一旦初始化后不能修改的对象则称

为常量。

? 变量定义形式: 类型 标识符, 标识符, … , 标识符 ; ? 例如:

int x ; int wordCut , Radius , Height ; double FlightTime , Mileage , Speed ;

轻松入门 实战应用 技术交流群387220290

变量本质

1、程序通过变量来申请和命名内存空间 int a = 0 2、通过变量名访问内存空间

(一段连续)内存空间的别名(是一个门牌号) 3、 修改变量有几种方法?

1、直接

2、间接。内存有地址编号,拿到地址编号也可以修改内存;于是横空出世了!(编程案例)

3、内存空间可以再取给别名吗? 4、数据类型和变量的关系

? 通过数据类型定义变量

5、总结及思考题

1 对内存,可读可写;2通过变量往内存读写数据;3 不是向变量读写数据,而是向变量所代表的内存空间中写数据。问:变量跑哪去了? 思考1:变量三要素(名称、大小、作用域),变量的生命周期? 思考2:C++编译器是如何管理函数1,函数2变量之间的关系的? ====》引出两个重要话题:

内存四区模型 函数调用模型

重要实验:

int main333() { //

//2种方法,通过变量直接操作内存 // 通过内存编号操作内存 int i = 0;

printf(\ *((int *)(1245024)) = 10; printf(\

轻松入门 实战应用 技术交流群387220290

}

printf(\ getchar(); return 0;

1.3.3程序的内存四区模型

内存四区的建立流程

流程说明

1、操作系统把物理硬盘代码load到内存 2、操作系统把c代码分成四个区 3、操作系统找到main函数入口执行

C语言进阶知识总结讲义

轻松入门实战应用技术交流群387220290数据类型大小intmain(){inta=10;intb[10];printf(\printf(\printf(\printf(\printf(\printf(\getchar();return0;}siz
推荐度:
点击下载文档文档为doc格式
38pl56jphj5dq8n1sig30fluh9boav00ulx
领取福利

微信扫码领取福利

微信扫码分享