C语言基础知识(1)--简介 天天观焦点
1.概述
C语言能以简易的方式编译、处理低级存储器。
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
(资料图)
冯·诺依曼在1945年提出了现代计算机的若干思想,被后人称为冯·诺依曼思想,这是计算机发展史上的里程碑。自1945 年至今大多采用其结构,因此冯.诺依曼被称为计算机之父。他的体系结构计算机由运算器、控制器、存储器、输入设备、输出设备五大部件构成。C语言拥有一套完整的理论体系经过了漫长的发展历史,在编程语言中具有举足轻重的地位。
C语言诞生于美国的贝尔实验室,由 D.M.Ritchie 以B语言为基础发展而来,在它的主体设计完成后,Thompson 和 Ritchie 用它完全重写了UNIX,且随着UNIX的发展,C语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的 1989 年,诞生了第一个完备的C标准,简称“ C89”,也就是“ ANSI C”。
到目前为止,C语言标准委员会修订发布了3个标准: C89(C90)、 C99、 C11、C17。
C17 是 ISO/IEC 9899:2018 标准,于 2018 年发布。
C17 标准在 C11 基础上进行了一些小的修订和更新,主要是对标准库进行了一些改进和扩展。C17 标准对于C语言本身的特性并没有做出太大的改变,主要是对于一些库函数进行了更新和扩展。C17 标准目前还比较新,尚未得到广泛的应用。
2.C语言现状
(1).C语言是操作系统内核开发领域几乎是唯一开发工具, 大部分操作系统是由C加上少量汇编语言开发的;比如:Linux、Windows、Vxworks、Unix。
(2).在嵌入式领域占有绝对优势。
(3).在网络服务器类相当大优势 Apache、 Oracle。
(4).GUI 应用领域、大型商用程序采用 C 的较多 。 比如: Offices, SPSS, AutoCAD。
(5).大规模、高性能计算、游戏开发以及一些传统的客户端软件和构件。
总之,C语言有这自身独特的优势,尽管现今开发语言众多,但C语言的高效性还是有着自身的独特性。在AI人工智能中对C语言现状的查询的查询如下:
3.C语言数据类型
在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个约束。变量的类型决定了变量存储占用的空间。
序号 | 类型与描述 |
1 | 基本类型:算数类型,包括整数类型和浮点类型 |
2 | 枚举类型:算数类型,用来定义固定的整数值变量 |
3 | void类型:类型说明符void表示没有可用的值。 |
4 | 派生类型:包括指针类型、数组类型、结构体类型、共用体类型和函数类型。 |
4.基本类型
C语言中基本数据类型有:字符符型(char)、短整型(short)、整型(int)、长整型(long)、浮点型(float)、双精度浮点型(double)。使用sizeof计算数据类型占用空间大小。
数量类型 | 占用空间 | 定义和输出方式 | 取值范围 |
字符型(char) | 1个字节 | %c或者%hhd | CHAR_MIN、CHAR_MAX |
短整型(short) | 2个字节 | %hd | SHRT_MIN、SHRT_MAX |
整型(int) | 4个字节 | %d | INT_MIN、INT_MAX |
长整型(long) | 8个字节 | %ld | LONG_MIN、LONG_MAX |
浮点型(float) | 4个字节 | %f | FLT_MIN、FLT_MAX |
双精度浮点型(double) | 8个字节 | %lf | DBL_MIN、DBL_MAX |
注意:再输出取值范围时,上述宏在limits.h和float.h中定义。 FLT_MIN、DBL_MIN表示的是正数最小值;FLT_MAX、DBL_MAX表示正数最大值。
5.进制输出
C语言中有二进制、八进制、十进制、十六进制。其中八进制、十进制、十六进制可以直接出。
进制 | 定义及输出格式 |
二进制 | int a=0b1011;无直接输出方式 |
八进制 | int a=012; “%#o”输出 |
十进制 | int a=12; “%d”输出 |
十六进制 | int a=0x12; “%#x”输出 |
%#x --格式化打印自动添加格式前缀。
示例1:
#includeint main(){int a=10;//10进制printf("八进制:%#on",a);//八进制输出printf("十进制:%dn",a);//十进制输出printf("十六进制:%#xn",a);//十六进制输出int b=0b1011;//二进制,十进制为11int c=023;//八进制,十进制为19int d=0x12;//十六进制,十进制为18printf("b=%d,c=%d,d=%dn",b,c,d);}[wbyq@wbyq 1227]$ gcc main.c [wbyq@wbyq 1227]$ ./a.out 八进制:012十进制:10十六进制:0xab=11,c=19,d=18
审核编辑:汤梓红 标签: