星沉大海3
c语言大部分时候,只能用数据类型关键字来定义变量,如:int,long int,double void等。但很多时候也可用其它类型关键字,举例如下:
如:
const char cosin=1;它表示cosin值在程序中只能引用,不能改变,在程序中经常用到。
简化,把char取掉,写成:
const cosin=1;
编绎也是正确的,执行也没问题。
这说明不用数据类型char也是可以的。
同理,const cosin=0.5498654;
也同样执行过确。
2,sizeof:计算数据类型长度
如:
return(sizeif(a));
返回类型可以是int,也可以是其它。
3,typedef:
typedef struct
{
int a;
bool c;
}astruct
那么,在别的地方可直接这样定义一个结构:
astruct struct1;
4,extern
函数asint()
在另外一个文件中
extern asint()
总结:关键字很多,用在专用场合。
beijingwanger
我作为一个学过多种编程语言的人,我来回答下这个问题吧。
与python比较
C语言只能使用数据类型的关键字来定义变量,这个主要和变成语言的设计有关,每个语言的编译器、解释器是不同的,如果不加关键字,编译器、解释器是无法识别的。比如python语言是一中更加简洁的语言,这一种语言它的编译器、解释器会自动识别类型,所以不需要。
需要类型的原因
但是C语言在设计的时候并没有自动识别的功能,所以需要我们加关键字进行有效的区别。因为:
1,编译器需要知道变量需要多大的内存空间;2,编译器需要知道如何访问变量。
C中定义数据类型是为了容易编程,定义了数据类型之后又定义了数据类型之间的各种运算,这样对编程人来说就会方便很多,如果不定义数据类型,那么数据之间的差别只有位不同而已,这样如果要定义一个字符变量,你首先要去申请一个8位的内存,再去按ASCII码对其进行赋值,这样对编程人员来说是很恐怖的。
附录
另,转述下 Edwin Brady 在《Type-driven Development with Idris》中的说法,类型有以下几个重要角色:
- 对机器而言,类型描述了内存中的电荷是怎么解释的。
- 对编译器或者解释器而言,类型可以协助确保上面那些电荷、字节在程序的运行中始终如一地被理解。
- 对程序员而言,类型可以帮助他们命名、组织概念,帮助编纂文档,支持交互式编辑环境等。
希望对你有帮助,欢迎讨论留言!
皇德华叫兽
是的,任何变量都需要有一个明确的类型,原因如下:
1,编译器需要知道变量需要多大的内存空间;
2,编译器需要知道如何访问变量,如支持什么样的操作符等。
当然在 C 里面你可以给已有的类型定义别名,如:
typedef int 整数;
整数 i = 123;
别名可以是任何符合C语法规范的名字。
也可以给用于自定义类型命名,如:
typedef struct tagStudent
{
int id;
char* name;
} Student;
这里定义了一个结构体 ,并定义了一个别名。