首页 存档 技术 查看内容

智库 | C语言编程经验浅谈 二、指针和数组 三、字符和字符串 四、const和static 五、 ...

2018-3-30 13:00 |来自: 互联网 368 0

摘要: 文 | 科技开发部 李志明 在计算机编程的世界里,没有哪一种语言能像C语言这么成功,虽然目前有许多便于开发大型工程的高级面向对象语言,如JAVA、C 、Python甚至PHP等等,但C语言都可以在他们面前问一句“who’s you ...

文 | 科技开发部 李志明

在计算机编程的世界里,没有哪一种语言能像C语言这么成功,虽然目前有许多便于开发大型工程的高级面向对象语言,如JAVA、C 、Python甚至PHP等等,但C语言都可以在他们面前问一句“who’s your daddy”。

相信大多数人科班出身的程序员大学时期学的第一门编程课程就是C语言,所以C语言对于每一个接触过计算机编程的人都不陌生。而在平时的开发工作中,虽然C 和JAVA也在使用,但使用最多的还是C语言,所以结合自己的编程经验写一点自己的体会吧。当然我们中心是一个各种大牛存在的地方,自己水平还很一般,只是班门弄斧,写一点编程中容易被忽略和犯错的基础知识,希望抛砖引玉让更多牛人来分享一下自己的宝贵经验。

一、=与==

为什么要把这个C语言中老生常谈的问题放在最开始讲呢,因为虽然谁都明白这两个再简单不过的符号的区别,但这个用得最多的符号却是最容易犯错的地方,所以每一个程序员都应该引起重视。‘=’在C语言中是赋值操作,‘==’是判断两个值是否相等。

记得刚参加工作时候,自己就曾遇到过这样的一个问题。当我写好一段代码测试时候发现密码输入错误也能交易成功,但是反复看了几遍检查密码的代码都没有任何错误啊,最终打了很多日志测试后终于才发现原来问题就出现在下面一行代码:

If(acct_no.acct_type = ‘a’ )

{

……

}

判断是不是a类型账号的代码少写了一个‘=’导致将账户变为a类型,而后面检查密码的程序中a类型账号是不用检查密码的,引起的后果就是该交易即便是密码输入错误也能将钱转走,一个‘=’引起低级错误导致的后果却是非常严重的。类似这种简单但容易出错语法问题还有很多,比如在用switch时,每一个case结束后break是否遗漏,这些都是语法上没有任何错误,编译器无法检查出来的,但逻辑上却是很大的错误,在写代码时需要认真检查。

二、指针和数组

指针是C和C 的精华,能直接进行计算机内存级别的操作,听起来就很厉害。但很多人却闻指针色变,需要经一段“惨绝人寰”的痛才能很好的掌握指针操作,而有些大学老师甚至觉得指针太难干脆就不教或者考试不考,但是不会指针其实就跟不会C语言其实没太大区别。那什么是指针?什么是数组?这两者之间有什么关系呢?本文基础的东西就不在阐述,直接上干货。

1、指针

int*p=NULL;

上面是一个指针的定义,需要特别说明的是很初学者在定义指针时不习惯初始化指针,即将指针指向空位置,这是一个很不好的习惯,容易导致一些不可预知的错误。其实指针并不是那么难理解,只要记住指针存放内存的地址,前面的符号*就是用来查找这个地址指向的内存中的值,而这个值是什么类型,占多少空间就是前面的数据类型int定义了。切记,指针使用时一定要指向明确的内存地址,要么指向已经分配好的空间,要么用malloc分配相应的内存空间给指针使用。

int i=5;

p=

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部