- 博客(34)
- 收藏
- 关注
转载 什么是野指针
qq_15437667的博客118原创20转载1译文3评论25428访问京 ICP 证 070598 号Copyright © 1999-2016, CSDN.NET, All Rights Reserved
2016-12-08 23:48:24 813
原创 C语言函数
今天主要学习的是函数的内容,在上课之前我们回顾了一下上节课讲的数组指针的知识,提到了指针和数组的区别:1 空间分配:数组是静态分配空间,指针是动态分配空间,数组空间利用率低2 访问效率:指针是对地址做操作,可以访问硬件,灵活性高3 安全性:指针相对于数组访问更加灵活(容易造成内存泄露)4 函数形参计算机三大组成部分:cpu,内存,硬盘嵌入式三种:软件,操作系统,硬件
2016-12-08 23:45:35 434
原创 函数指针
今天上课学习的主要内容是函数指针。一开始回顾了一下我们上节课讲的数组指针,传数组指针的数组名用二维指针来接(char **argv)argv两个*,可能是指针数组,也可能是指针的地址,函数名是一个指针常量,这个常量保存的是函数的入口地址。int (*p_func)func(int,int);这是一个函数指针。函数名是可以用实参传递的,函数指针在函数传参的时候用,函数指针做形
2016-12-05 22:39:03 439
原创 数组与数组名
Char * dest = (char *) malloc (sizeof(char) *100);给dest指针分配空间的例子。今天学习的是数组的知识,有一个数组,比如a[10];首先我们知道一个数组的数组名是一个指针常量,这个常量保存的是首个元素的地址。&a:对数组名取地址等于数组的地址。*(&a):对以为数组的地址取值等于一位数组首个元素的地址。数组有一维有二维有三维,定义一
2016-12-04 15:41:10 1014
转载 malloc的实现原理
malloc()是C语言中动态存储管理 的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值 是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配 就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据 程序的需要即时分配
2016-12-02 23:14:28 520
原创 指针的基础知识补充
strcpy(ptr,"hello world");是把hello world复制到ptr里边。char *ptr=(char *)malloc (len)len;这个char*是强制类型转换将malloc的返回值强制转换为char型,malloc返回值是void*(空指针)。size_t是一个整型。指针赋值一定要是相同类型的指针赋值。(或者说步长一样的指针)浮点型的指针不
2016-12-02 23:03:53 345
原创 野指针
今天刚开始上课先写了两个程序,都是上节课的内容,写起来还是有点难度,需要自己找时间再去写几遍。接下来讲的指针的内容。提到了一个名词叫野指针,什么是野指针?野指针就是随机指向一块内存的指针。野指针造成的错误是内存泄露。接下来讲一个非常重要的问题,是许多面试公司都会问得题目,如何避免野指针。这个问题应该怎么回答?答案如下:我觉得要避免野指针要养成一些良好的编码习惯:1 当一
2016-11-30 22:59:46 391
转载 C语言五子棋
目前为止跟着学校进度学习C语言大概半年左右,基础学习只学到了指针,学得非常浅。说实话,起初对C语言的印象———只是一个学习计算机语言的敲门砖,对具体C语言如何应用等,非常迷茫。直到大一下半学期的高级语言设计课程之后,试过dos运行的图形化界面的完整小程序,才发现C语言的魅力。ok,废话不多说了,下面是我第一节课研究的程序————C语言的五子棋。一个简单的小程序。并非纯原创,是基于网络搜索到
2016-11-29 22:50:07 1596 1
原创 指针
ptintf是一个行缓冲函数,刷缓冲区的条件如下:1 缓冲区填满2 写入的字符有'\n','\r'3 调用fflush手动刷新缓冲区4 调用scanf要从缓冲区读取数据时,也会将缓冲区内的数据刷新以上四个条件只要满足一个就会刷新printf("%d\n",__LINE__);输出当前行号printf("%s:%d\n",_func___LINE__);打印当前函
2016-11-28 22:55:25 299
原创 常量和变量,操作系统
今天一开始讲的是变量和常量变量的三大特点:1变量的数据类型:主要说明变量占用的内存空间大小2变量的作用域:变量的有效性的范围,即变量的使用范围3变量的存储类型:变量在内存中的存储方式,不同的存储方式,影响变量在内存中的生命周期内存和硬盘的区别:内存是电脑的数据存储设备之一,其特点为容量较小,但数据传送速度较快,用以弥补硬盘虽然容量大但传送速度慢的缺点,在电脑中;内存被架设在
2016-11-26 23:50:41 512
原创 数据结构
时隔四日,上节课讲的左右法则已经差不多“忘了”,所以今天梁哥问我的问题并没有答上来。不过再听过他解析一遍,就把上节课的记忆找回来了,而且我想应该也不会再那么容易就忘记了,所以说学过的内容一定要及时回顾复习,温故而知新。今天上课讲的几点内容很简单,还是一些基础的东西,但是每次都可以通过这些基础的东西学到很多从书上看不到的东西。首先,让我们自己看书的话,一些简单的地方我们真的是随便过两遍就翻篇
2016-11-25 23:15:06 279
原创 作业感悟
因为老师有事所以今天的课没有上,然后给我们布置了四道编程题,编程能力还是比较差,四道题目加起来一共写了有三个小时,感觉还是有很大的进步空间。
2016-11-23 23:25:05 389
转载 指针
对于初学C语言的朋友,除了觉得指针有点神秘之外,最大的问题之一可能是理解指针到底是用来干什么的。我会回答说:“指针绝对是必不可少的,我们会一直使用,请相信我”,你可能会丢我砖头(说不定还有西红柿和鸡蛋) :P ,因为我说了等于没说。好吧,我会给你一个问题,你会发现假如不用指针是不能解决的。这个问题有点类似我们这一课的引子。在这一课的结尾我们还会重新来谈这个问
2016-11-22 21:58:44 296
原创 左右法则
今天上课一开始把昨天的程序回顾了一下,而且用的是另一种方法,也是以后我们写程序要选择的方法,就是写个函数,然厚在主函数里边调用。这种写法一开始我还是不太熟练,但是我觉得通过代码的练习肯定会慢慢熟练的。今天讲的主要内容就是四个字“左右法则”左右法则是一个简单的法则,但能让你准确理解所有的声明。这个法则运用如下:从最内部的括号开始阅读声明,向右看,然后向左看。当你碰到一个括号时就调转阅读的方向
2016-11-21 23:30:54 429
转载 C语言数组与指针
看到一篇关于C语言指针的文章,正好最近在看《C和指针》就去看了一下。《一道 C 语言指针访存题目的引申》,里面的第一个题目就把我难住了。帮助123456789 #include int main() { int a[5] = {1, 2, 3, 4, 5}; int *pa = (int)(&a) + 1; printf("%x\n", *pa); r
2016-11-20 23:19:34 298
原创 对C语言的初步认识
今天开启了C语言学习的第一节课。 一开始问了我们在现有的开发里有哪些语言:Java,c++,php,c#,.Net,python,shell,oc(ios系统用的语言)面向对象的语言:以上除了Python,shell语言 中间提到了一句嵌入式是什么?嵌入式就是移植操作系统。所有的操作系统的内核都是由C语言完成的。这也是为什么我们学嵌入式要选择C语言来完成。C语言有以
2016-11-19 22:16:46 2116
原创 Linux常用指令
今天上课的主要内容还是makefile,首先给我们讲了每个目录里的makefile的一些命令都是什么意思,给我们讲解理解后又给我们讲了下怎么来修改,用我们原来使用的命令来替换这些原来的命令。完成这一任务的首要目标肯定是熟悉并了解命令的意思。讲完这些梁哥就告诉我们几个面试官经常问的关于makefile的问题1.makefile的作用是什么2.给你几个文件,你来写一个makefile
2016-11-18 23:15:04 408
原创 Makefile注释
Makefile 的多行注释 2012-08-14 10:15:20| 分类: 默认分类 |举报|字号 订阅Makefile 的多行注释Makefile Comments注释在 makefile 中起着重要的作用,它帮助我们更快更好的理解 makefile 的内容。# 注释符# 字符是注释符,makefile 把 # 字符后面的内容作为注释内容处理(shell、perl 脚本也是使用 # 字符作为
2016-11-18 23:13:32 4427
原创 Makefile
Makefile的特性介绍:在Makefile文件中,存在着大量的文件名,而且这些文件名都是重复出现的,所以在源文件较多的情况下,很容易发生遗漏或者写错文件名。而且一旦源文件的名称发生了变化,还容易造成其他文件名不一致的错误,所以Makefile提供了变量来代替文件名。 Wildcard:wildcard模式参数列出当前目录下所有符合模式参数的文件Pastubset:pastu
2016-11-16 23:26:37 277
转载 c语言-输入任意长度字符串
C语言,从标准输入读入几行输入,并显示在标准输出,每行的前面加上行号。代码#include #include int main(void){ int ch; int line_no = 0; int flag = 1; while((ch = getchar()) != EOF) { if (flag) {
2016-11-15 22:29:15 7903
原创 把自己写的程序和书上的比较
首先今天的日计划全部完成,虽然今天给自己定的工作量不大,但是完成了就是有一种莫名的开心。今天下午考完试后在宿舍看了C语言的第七章内容,数组和字符串的知识,个人觉得这些地方的内容要比前边的有点难度,看起来和理解起来也有点难度,但是看懂了后就会觉得一下子豁然开朗,然后会把不太熟悉的地方多看几遍多理解几遍。 然后晚上去图书馆自习,是戴泽电脑去的,主要目的就是把之前看的程序自己敲一遍,然后和书上的进
2016-11-14 22:55:49 296
转载 调试器GDB和Makefile
调试器(GDB)GNU发布的一款功能强大的程序调试工具。GDB主要完成下面三个方面的功能:1、 启动被调试程序;2、 让被调试的程序在指定的位置停住;3、 当程序被停住时,可以检查程序的状态-变量值;1、-g:产生调试信息;2、gdb “可执行文件”;3、run:执行程序;4、list:查看源代码;5、quit:退出gdb;6、break “行号”
2016-11-13 23:31:10 337
转载 gcc的三级优化到底优化了哪些
GNU编译器提供-O选项供程序优化使用:-O 提供基础级别的优化-O2 提供更加高级的代码优化,会占用更长的编译时间-O3 提供最高级的代码优化-O4 不优化,这是默认值不同的优化级别使用的优化技术也可以单独的应用于代码。 可以使用-f命令行选项引用每个单独的优化技术。第一级:代码调整 代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问
2016-11-13 23:28:51 1558
原创 嵌入式开发系统
嵌入式的开发系统 gcc 特点:1可以编译多种语言 2 gcc是一个交叉平台编译器,它能够在当前cpu平台上为多钟不同体系结构的硬件平台开发软件 编译器编译过程:预处理,编译,汇编,链接 预处理的内容分为1 头文件展开,2宏替换,3条件编译 语言: gcc - E 只进行预处理操作 >重定向 gcc - E demo2
2016-11-11 23:10:35 291
转载 数组与指针的区别
在很多时候,对于指针变量可用数组方式操作,对于数组可用指针变量方式操作,可是指针变量和数组毕竟不是同一个东西,下面我们来归纳几点数组名和指针名的区别: 以下的讲解基于如下这段代码: char a={'a','b','c'}; int *p = a; 1、指针变量名可以被赋值,数组名不可以被赋值。也就是说:p=p+1;是正确的,a = a+1;是错误的。2、size
2016-11-10 21:51:30 238
原创 看到自己的进步
今天上了第二节课程序课,分时段给我们三个程序题然后分配相应的时间来解决。先不说今天的程序写的怎么样,就今天这节课写程序的思路和感觉都比上节课要好很多,一个比较复杂的程序题可以先把自己会的部分写上去,然后慢慢的来补全,就算最后实现不了函数的功能,但是脑子里的思路很清晰,很明确的知道想要什么程序来实现什么样的功能,真的感觉到了自己在进步,一步一步向上走。今天的几个程序我都算是完成了,一开始都是写的有点
2016-11-09 23:21:51 448
转载 嵌入式燃气灶
嵌入式燃气灶 编辑嵌入式是将橱柜台面做成凹字形,正好可嵌入燃气灶,灶柜与橱柜台面成一平面。嵌入式燃气灶从面板材质上分可分为不锈钢、搪瓷、玻璃以及特氟隆(不沾油)4种。由于嵌入式灶具美观、节省空间、易清洗,使厨房显得更加和谐和完整,更方便了与其它厨具的配套设计,营造了完美的厨房环境,因此,受到了广大消费者的喜爱,很多家庭在装修新房时都选用了这种类型的燃气灶具。
2016-11-08 23:12:32 618
转载 无意看到的
[说明:刚接触多线程时,弄不明白Join()的作用,查阅了三本书,都不明不白。后来经过自己的一番试验,终于弄清了Join()的本质。大家看看我这种写法是否易懂,是否真的写出了Join()的本质,多提宝贵意见。] Thread类的Join()方法能够将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,线程A将插入线程B之前,直到线程A执行完毕后,才会继续
2016-11-08 23:10:21 293
转载 C语言数组的概念
1.C语言数组的概念在《printf函数的高级用法》一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下:#include #include int main(){ int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=20
2016-11-08 23:06:07 1273
原创 学好C语言是要用敲得
今天上课一开始提问了一下昨天的留给的作业,主要就是问了根目录的一些面试官常问的指令,比如/bin,/home,/root,/sbin/,lib/等。然后提到了一个mnt指令是挂载的意思,就是临时安装文件系统安装点。并且提到Linux下可用的文本编辑器有很多,需要我们自己花时间去了解。简单的复习一下上节课内容后,梁哥就开始今天上课的任务了。“我们今天不上课,来试着写一写程序”然后给了
2016-11-07 22:43:31 536
原创 linux的指令及其应用
梁哥照常抽几个同学回答一下上节课的内容后,今天晚上的课程就开始了。今天一开始讲的主要内容是围绕昨天梁哥留给我们的作业讲的。就是Linux简单的十五个指令,有ls,ls-a,ls-l,cd,rm,mv,mkdir等等指令。然后打开虚拟机教我们怎么使用终端写程序,并且讲过后都给我们几分钟的时间自己去写一下加深一下记忆。[rootlocalhost~]#叫一点哲学,意思就是一切皆为文件,通俗
2016-11-05 22:46:41 326
原创 嵌入式的操作系统分类和redhat的安装
现在,结束了一晚上的学习,回到宿舍第一件事情就是给自己几分钟的放空时间。放松放松大脑,缓冲缓冲进度。今天一开始梁哥给我们讲了嵌入式操作系统的分类,他先分为商用型和免费型两个类型。商用型的系统主要有vxworks(半开源),Wince(收费)免费型的有Linux(无实时性)然后还有实时性的分类,实时性的操作系统有μC/OS-II(很小的操作系统,不带网络协议栈,不能移植)什么叫实
2016-11-04 23:20:16 516
原创 对嵌入式的初步认识
2016年11月2日,周二,开始了进入苏嵌的第一节正式课,由梁哥给我们讲解。梁哥先给我们讲了一下第一阶段学习大致的时间安排通过这个图可以很明确这一个月左右的学习内容和时间的安排,也可以让自己明确的知道有哪些学习目标在等着自己去完成。梁哥今晚讲的是关于嵌入式的内容,一开始就告诉了我们今晚一开始要了解的三个问题1 谈谈我们的嵌入式的理解2 嵌入式与单片机的区别3 嵌入式软
2016-11-02 22:56:51 823
原创 伊始,端正,坚持,厚积薄发。
伊始,从今天开始将是迈向成功的开始;端正,时刻保持一个良好的认真的学习态度,求知求学;坚持,成功贵在坚持,万万不可半途而废;厚积薄发,量变到一定程度会发生质变,我们每个人都期望自己走在正确的道路上,梅花香自苦寒来,衷心祝愿天下用心人等到功成名就的那天。
2016-11-01 14:33:44 303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人