C语言为什么是一个 弱 类型的高级语言?

什么又是一个强类型的高级语言?... 什么又是一个强类型的高级语言? 展开
 我来答
匿名用户
2015-07-12
展开全部
弱类型语言指的是一种没有很强类型概念的语言,如vb,而强类型语言指的是有很强类型概念的语言,如c(虽然c允许类型转换,但是相对来讲比vb要是强类型),弱类型的好处在于程序员不需要过多的着重与类型的转换,而强类型的好处在于程序可以有条不紊的执行,而且类型错误的出现率很低,即使有也很容易发现。
弱类型例子:(语言为vbscript)
var result=5+5; //两个数字之和
alert(result);  //输出10
var result=5+'5'; //一个数字和一个字符之和
alert(result);  //输出55
因此使用弱类型语言也要格外注意数据类型防止出错
而c语言相对来讲比vb更具有类型概念:
#include <stdio.h>
int main(void) {
int a = 5 + 5; //两个数字之和
printf("%d", a); //输出10
in b = 5 + '5'; //一个数字和一个字符之和
printf("%d", b); //输出106,因为字符'5'被隐式转换成了相应字符的虚拟键值(即101)再和数字5相加
return 0;
};
jhanker
推荐于2017-11-27 · TA获得超过1479个赞
知道小有建树答主
回答量:675
采纳率:73%
帮助的人:501万
展开全部
  1. 计算机能执行的是机器语言,为了方便编程,设计了和计算机机器语言一一对应的汇编语言(低级语言,但执行效率高,编程相对麻烦),除了上述语言外其他都叫做高级语言。例如c语言在编译的时候就是把一条c语句编译成对应的多条机器语言(或者说是多条汇编代码),因而是典型的高级语言

  2. 但c语言比起其他语言来说对数据类型的处理更灵活,换句话来说就是数据类型检测没有像basic等其他高级语言强,这样的目的是可以更接近计算机硬件,需要编程者更清晰的理解数据在内存中的分布情况,代码的运行效率也会更高。最明显的特征是数组的边界不检测,这样就说明它是 弱 类型的高级语言,反之对数据类型进行严格检测的如basic就是强类型

    个人理解,仅作参考,望采纳!

追答
上面的第二条把概念搞错了:应该是c语言比basic等高级语言的数据类型要求严格,c语言是强类型高级语言!c语言的数组越界检测没basic严格,这是语法检测问题,是为了灵活性和运行效率,不是强弱类型的区分点!举个例子如果我们在c语言中定义一个数值变量a我们需要明确a是具体什么类型,比如是有符号整型还是无符号整型,是浮点单精度还是双精度,因为不同类型在内存中的存储大小和意义是不同的,而有的高级语言,你定义a可以给它以正数,负数,整数或小数都可以,它是会自动帮你识别的!所以c是强类型,强类型执行效率高,难学
楼下的解释正确!不好意思,差点误人子弟了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式