c语言入门报告,c语言学习心得报告

41528d3028836879cd698677c3999917.gifc语言学习心得报告

C 语言学习心得报告 看了一段时间的《C和指针》 ,这样看的效果不是很好,看着书本当时是懂 了,有点恍然大悟的感觉,但是发现并不能真正的把理解的内容加入到自己程 序当中,不能很好的去运用它,所以对于C语言我认为理论加实践,是学习C 语言的最好方法,看书并不能完全理解书中的内容,也较容易遗忘,学习效率 比较低,所以现在学习《数据结构》 ,在看书的同时,会在Microsoft Visual C++ 6.0软件上实践,严蔚敏写的《数据结构》这本书,比较经典但是这本书 是伪算法,并不能直接在计算机上运行,对于初学者上机实践比较困难,另外 说一下,我认为学习应该是在模仿中理解,在模仿中创新,所以我选择结合高 一凡写的书《数据结构算法实现及解析》 ,这本书严蔚敏写的伪算法全部用程序 实现了,给我上机实践提供了很大的帮助,貌似说到数据结构了,呵呵,回到 正题,下面继续说说C语言。指针是C语言的精华,也是C语言的难点,它就像一把双刃剑,锋利无比 但运用的不好也会给自己带来危害,后果比较严重,所以重点来说说指针。 很多初学者弄不清指针和数组到底有什么样的关系,为避免混淆不清,下 面总结一下指针和数组的特性。指针是保存数据的地址,任何存入指针变量的 数据都会被当作地址来处理,指针变量本身的地址由编译器另外存储,存储在 哪里,我们并不知道,间接访问数据,首先取得指针变量的内容,把它作为地 址,然后从这个地址读或写入数据。指针可以用间接访问操作符(*)访问,也 可以用以下标的形式访问,指针一般用于动态数据结构。数组是用来保存数据的, 数组名代表的是数组首元素的地址而不是数组的首地址,所以数组p与&p是有 区别的,虽然内容相同,但意义却不同,&p才是整个数组的首地址,数组名是 整个数组的名字,数组内每个元素并没有名字,不能把数组当一个整体来进行 读写操作。当然数组在初始化时也有例外,如int p[]=“12345”是合法的。 数组可以以指针的形式访问如*(p+i);也可以以下标的形式访问p[i],但其本 质都是p所代表的数组首元素的地址加上i*sizeof(类型)个字节作为数据的 真正地址来进行访问的。数组通常用于存储固定数目且数据类型相同的元素。刚开始的时候我有点分不清指针数组和数组指针,现在也总结一下,指针数组, 首先它是一个数组,数组的每个元素都是指针,可以理解为“存储指针的数组” 的简称,数组指针,首先它是一个指针,它指向一个数组,在32位系统下永远 只占4个字节,至于它指向的数组有多少个字节,并不知道,可以理解为“指 向数组的指针” 。举个例子,int *p1[10]与int (*p2) [10], 要理解这个问题, 首先要清楚操作符的优先级, “[]” 的优先级比“*” 的优先级高,所以首先 p1与“[10]”结合构成一个数组p1[10],int *为修饰数组的内容,所以数组元 素是指向int类型的指针,所以这个是指针数组, “()” 的优先级比“[]” 的 优先级高, “*”与p2结合构成一个指针变量,int修饰数组的内容,即数组的 每个元素,数组这里并没有名字,是个匿名数组,现在清楚了p2是一个指针, 它指向一个包含10个int类型数据的数组,即为数组指针。下面再说说内存管 理,内存分为三个部分:静态区、堆、栈。其实堆栈就是栈,而不是堆。静态 区是保存自动全局变量和static变量。静态区的内容在整个程序的生命周期内 都存在,由编译器在编译的时候分配。堆是由malloc系统函数分配内存的。其 生命周期由free和delete决定。栈保存局部变量。栈上的内容只在函数范围 内存在,当函数运行结束,这些内容也会自动被销毁。再说说有关内存需要注 意的地方,定义了指针变量,在使用之前一定要初始化使它指向一块合法的内 存,不管什么时候,我们在使用指针之前一定要确保指针是有效的。使用 malloc系列函数分配内存,使用完之后应及时释放内存,以防止内存泄露。 最后总结的说一下学习C语言的方法就是编程编程再编程,理论学习与上机 操作同时进行,另外在编程序的过程中要养成良好的编程习惯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值