抛弃C程序设计中的谬误和恶习(6)

8章 概念的缺失

1、只知变量,不知对象

数据对象是C语言的一个最基本的概念。

按照C标准的定义,所谓数据对象,就是程序运行环境中数据的存储区间,该区间的内容可以表示值。

“数据对象”这样的基本概念之所以重要的原因是,概念是逻辑思维的基本元素。基本概念不清楚,根本无法精确的思考和正确的表达。而“精确地思考和正确的表达”恰恰是程序员所必须具备的最基本得职业素养,你不可能指望“朦胧诗”式的代码能让计算机正确的执行你所要求的任务。


注意:

编译通过并不一定代表代码绝对没有错误,这是C语言使用者必须了解的一个最基本的常识。


关于左值的概念

左值的意思就是它可以出现在赋值运算符的左边,其值是可以改变的。

左值并不是指可以出现在赋值运算符的左侧,实际上很多左值和赋值运算符毫无关系。

左值指的是表达式的含义是否表示一块内存。例如:

Int I = 1;

I = i+1;

这里赋值号左侧的i表示的是变量i所占据的那块内存,因此这个i是左值。而赋值号右侧的i则表示i变量的值,这就是所谓的右值。


不合格的宏

#define  PI  3.1415926

#define  S(r)  PI*r*r

如果输入的是这样:S(1.0+2.0) 

就不符合题意,所以应该这样定义:#define  S(r) PI*(r)*(r)

 

预处理命令有三类:文件包含、宏和条件编译。

 

对strcpy()函数的使用需要注意的地方

Strcpy()函数调用的前提就是与两个实参相关联的字符串不能重叠,否则函数的行为是未定义的。

 

数组名代表什么

在什么情况下数组名可以代表整个数组,什么情况下代表指向其起始元素的指针呢?

这样总结,当数组名作为左值使用时代表整个数组,当数组名作为右值时使用代表的是其起始元素的指针。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值