网络阶段课程C语言精华笔记

网络阶段课程C语言精华笔记

这个月13号就没工作了,自身学历不高,嵌入式技术学的也不深。在国庆之前就想好了,如果找不到工作,就先学习一段时间吧,先提升自己,会好很多。目前是大四出来实习的,工作是真难找,也是自身技术的问题。

函数及形式参数

函数是一个功能模块,是程序运行当中包装起来的一个步骤。形式参数仅限于该函数。申请空间:当函数调用才申请了该内存空间,才有了该变量,同时这个空间的数据被赋值为实际参数的值。函数调用把实际参数的值拷贝一份给形式参数。释放空间:函数执行结束后,该空间由内存管理单元自动回收。

数组及形式参数

数组在函数中当形式参数,虽然写的是一个数组,但是括号中数组的大小是无效的。这里不管中括号写多少,都不能代表数组有多大。这时数组仅用来代表地址,需要另一个整型参数代表数组大小。

指针一种用法

C语言指针可以强制a变量保存在特定的地址中,如:int *p=(int *)0x0060ff00; volatile int *p2=(volatile int *) 0x0060ff00;volatile类型修饰符。在单线程中,定义变量把变量从内存拷贝一份到寄存器,cpu直接从寄存器访问a的值,非常快。在多线程定义变量初始化,是在内存中开辟空间的,线程一a=10;线程二a=20;不使用volatile,cpu读取的a的值不是最新值。volatile每次都是把内存的值传送到cpu计算、执行。牺牲效率,但提升了正确度。

指针第二种用法

函数调用结束,形参内存空间释放,不存在。main函数中值并没有改变,这是值传递。使用指针可以避免这个问题。指针=地址。函数传递的参数是地址。在函数调用的过程中,改的是main函数地址中元素的地址。函数调用结束后,形式参数内存呢被释放。但main函数a的值已经改为11。这是地址传递。

指针数组、数组指针、函数指针

指针数组

指针的数组,好多变量地址的集合,多个指针,叫做指针数组。比如:int *parray[3];

数组指针

数组的指针,强调的是类型,数组的个数。偏移值是偏移整个数组的大小。 比如:int (*p)[3]。

函数指针

函数指针类型如下:void (*p2)(); 新数组的定义方式:int *a=(int )malloc (3 sizeoof(int));

内存泄漏及野指针

3* sizeoof(int));

内存泄漏及野指针

程序一直运行,突然奔溃,内存泄漏。避免内存泄漏:1、注意程序中循环有没有一直申请内存空间。2、及时合理释放。free§;p=NULL;p指向空,避免成为野指针。int *p;未初始化,野指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值