关于 C 语言的 2 个问题

1. C 语言是静态的,还是动态的?

静态类型语言:如果在编译时知道变量的类型,则该语言是静态类型的。我们经常说到的 Java、C 和 C++ 在写代码的时候必须指定每个变量的类型。优点就是编译器可以执行各种检查,也就是程序还没跑起来就能找到一些小错误,也就是是在 compile-time 检查出错误的。

动态类型语言:一般是脚本语言,比如说 Perl、Ruby、Python、PHP、JavaScript,可以更快地编写代码,不必每次都指定类型。做 type checking 是在 run-time 的时候去做的。优点是可能代码开发快,但是维护难。

所以,C 语言是静态的。

以上看法,仅代表个人的一些看法。如有不对,请指出。

2. C 语言是强类型的,还是弱类型的?

强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。

弱类型语言也称为弱类型定义语言。与强类型定义相反。

在 C 程序中,比如:

#include <stdio.h>

int main(void) 
{
    
    
	char a = 'a';
	int b = 10;
	int c = a + b;
	printf("%d\n", c);
	return 0;
}

在上述代码中,char 类型和 int 类型是可以直接运算的,因为 char 类型会被提升为 int,这就是 C 中的隐式类型转换,将精度较小的转换为大精度的。从这个意义上讲,它并不符合强类型语言的定义。

#include <stdio.h>

int main() 
{
    
    
    int a = 'abcd';
    putchar(a);
    return 0;
}

上述代码的结果是 “ d ”,这也说明了 C 语言并不是一个强类型语言。既然它不是强类型语言,那它就是弱类型语言了。

所以,C 语言是弱类型的。

以上看法,仅代表个人的一些看法。如有不对,请指出。

猜你喜欢

转载自blog.csdn.net/qq_45902301/article/details/125700585