C语言】c语言是强类型还是弱类型

2020-12-24 09:58发布

19条回答
爱学习的小巴
2楼 · 2020-12-24 14:54

弱类型语言指的是一种没有很强类型概念的语言,如vb,而强类型语言指的是有很强类型概念的语言,如c(虽然c允许类型转换,但是相对来讲比vb要是强类型),弱类型的好处在于程序员不需要过多的着重与类型的转换,而强类型的好处在于程序可以有条不紊的执行,而且类型错误的出现率很低,即使有也很容易发现。

弱类型例子:(语言为vbscript)

var result=5+5; //两个数字之和

alert(result);  //输出10

var result=5+'5'; //一个数字和一个字符之和

alert(result);  //输出55

因此使用弱类型语言也要格外注意数据类型防止出错

而c语言相对来讲比vb更具有类型概念:

#include

int main(void) {

int a = 5 + 5; //两个数字之和

printf("%d", a); //输出10

in b = 5 + '5'; //一个数字和一个字符之和

printf("%d", b); //输出106,因为字符'5'被隐式转换成了相应字符的虚拟键值(即101)再和数字5相加

return 0;

};


强类型,强类型是指给定一个变量,其类型就是已知的,它并不是你所谓的操作上的兼容性,所以C还是强类型。

啦啦啦
4楼 · 2020-12-25 11:00

强类型,强类型是指给定一个变量,其类型就是已知的,它并不是你所谓的操作上的兼容性,所以C还是强类型。


水默
5楼 · 2020-12-25 13:52

强类型:以初始化的全局数据;

弱类型:未初始化的全局数据;

main.c

#include

short x = 10;

short y = 10;

void func();

int main()

{

fun();

printf("x=%d\n,y=%d\n");

return 0;

}

test.c

int x ;

void func()

{

x = 20;

}

上边打印出的结果为x=20,y=0。为什么呢?

一个工程中有多个文件,编译时分开编译。test.c编译时x访问的是当前文件的x,把20写到x的内存上,4字节大小。

main.c中的x为强符号,test.c中的x为弱符号,选强符号。链接时选强符号的x,但是编译时已经定好4字节大小。把20写到x内存上时,小端模式0x14000000,main.c中x、y都为short类型,也就是x是1400 ,y是0000。所以打印出来x=20,y=0。


花轮同学
6楼 · 2020-12-25 15:50

C语言是强类型语言。这点毋庸置疑

猫的想法不敢猜
7楼 · 2020-12-28 08:14

语言没有强弱之分,只不过随着时代的进步,不断有人创造新的语言出来,慢慢的有的语言不在适应于现在的需求,现在Java,Python之类的就很流行

小小邓
8楼 · 2020-12-28 10:05

强制定义就手把以前定义好的数据类型强制转换为另一种类型,正常情况下我们是定义一种数据类型,如chari,当我们要把它变为int时,就要用(int)i了。强制转换就是我们可以把我们以前定义好的数据类型转换为我们要用的令一种类型! 所谓强类型是指给定一个变量,其类型就是已知的,它并不是你所谓的操作上的兼容性。所以C还是强类型的。

猜不到结尾
9楼 · 2020-12-29 09:36

强制定义就手把以前定义好的数据类型强制转换为另一种类型,正常情况下我们是定义一种数据类型,如chari,当我们要把它变为int时,就要用(int)i了。强制转换就是我们可以把我们以前定义好的数据类型转换为我们要用的令一种类型!

相关问题推荐

  • 回答 4

    public Fungus.Flowchart myflowchart; //把你的对话流程在Inspector窗里拖进去myflowchart.GetIntegerVariable(Integer变量名);其他变量类型也有相应方法,要更改用set方法即可

  • 回答 5

    string sourceFile = @C:\Users\wangwenping\source\repos\GetActivePro\ConsoleApp1\bin\Debug\;string zipfileName = ./debug;ZipFile.CreateFromDirectory(sourceFile, zipfileName);//源路径,目标路径

  • 回答 3

    TCP没有自身解析结束符的方法,只能通过接收来的数据,自己自行解析数据。我的方法是:通过字符串的IndexOf()方法和Substring()方法解析数据,并分段放在list列表中,进入lock之前,逐个提取list中的数据即可实现。...

  • 回答 14

    数据类型:1、基本数据类型C#拥有比C/C++或者Java更广泛的数据类型。这些类型是bool、daobyte、ubyte、short、ushort、int、uint、long、ulong、float、double和decimal。像Java一样,所有这些类型都有一个固定的大小。又像C和C++一样,每个数据类型都有有符...

  • 回答 6

    1、基本数据类型C#拥有比baiC/C++或者Java更广泛的数据类型。这些类型是bool、dubyte、ubyte、short、ushort、int、uint、long、ulong、float、double和decimal。像Java一样,所有这些类型都有一个固定的大小。又像C和C++一样,每个数据类型都有有符号和无符...

  • 回答 1

    根据题主的角色应该有不同的选择。一、在校大学生1. 电子类专业选择C开始学习,未来职业选择可以是嵌入式开发。语言只是工具,重点要理解硬件原理。如果对非嵌入式开发也有兴趣,未来可以以C的基础再扩展学习Java等语言。2. 网络工程、计算机类专业首先学C,...

  • 回答 3

    可以啊,可以考很多计算机二级的证书,不同方向都可以考,只是每次报考是有科目数量要求的吧

  • 回答 1

    个人觉得还是Java语言好一些, 他的应用面广,而且学习难度低,学出来以后就业找工作会好很多

  • 回答 1

    C语言并没有比java难,C++确实比java难。与其说难,倒不如说麻烦。java之所以比较简单主要是因为没有指针。

  • 回答 3

    无论是你计算机专业还是非计算机专业,无论你学习C语言的目的是为了考试考证还是以后的工作. 学习好C语言都是一件很好的事,编程语言那么多,C语言永远是最好的入门语言,对于考试考证的同学来说,学习C语言可以锻炼自己的逻辑能力,学会把一个大的问题化解成几个小...

  • 回答 1

    1.先学C,C语言非常经典,得一个月吧,学会c后,再学python一个下午就可以学会,java大概一个星期。2.然后漫长的熟悉库函数和各种技术的阶段,唯有多练,否则永远编不出任何有价值的程序。...

  • 回答 2

    两个语言是没有可比性的.首先c语言是编程语言,而vbs的脚本语言,脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.从功能来说肯定是c语言更强大和全面...

  • 回答 2

    因为爬虫用python写有多个优点:    1.各种爬虫框架,方便高效的下载网页;    2.多线程、进程模型成熟稳定,爬虫是一个典型的多任务处理场景,请求页面时会有较长的延迟,总体来说更多的是等待。    3.GAE 的支持,当初写爬虫的时候刚刚有 GAE,而且...

  • 回答 1

            用C语言开发WEB,称ISAPI,一般人可能做不起来,有点麻烦。唯一是速度很快,别人看不到你的源码,掌握了编程套路,也可以开发应用。          缺点:          1。不是解释性语言,做的WEB调试非常麻烦;现在做WEB开发的,...

  • 回答 1

    不是必要条件,c是面向过程,c++面向对象,面向对象是为了更好的编程处理业务,学习c更有助于了解程序的运行机制,如果想了解更底层的可以看看汇编语言,可以知道计算机如何运算。...

没有解决我的问题,去提问