c语言笔记

本文介绍了C语言的起源、发展及其标准,包括ANSI C、C99等。C语言起源于ALGOL60,以其可读性和可移植性著称,但不适用于直接操作硬件。随着技术进步,C语言经历了多次标准更新,如C99,而不同的编译器对这些标准的支持程度各异。此外,文章还提到了C++、Java等语言的出现及其特点。C语言是面向过程的,而C++支持面向对象。文章还详细讲解了C语言中的格式输出和输入函数,以及数据类型、变量、函数、指针、数组、字符串、内存管理等方面的知识,强调了指针在C语言中的重要性,同时介绍了动态内存分配、链表、结构体、联合体和枚举类型。最后,文章提到了预处理指令,如#define和#include。
摘要由CSDN通过智能技术生成

查缺补漏

C语言的祖先是ALGOL60,是1960年由国际计算机委员会设计的一种面向过程的结构化程序设计语言,用它编写的程序具有可读性和可移植性好的特点。但是,它不能直接对硬件进行操作,不宜用来编写系统程序。系统程序用汇编编写,是面向机器的,所以可移植性与可读性比较差。

1983年,美国国家标准局ANSI制定了C语言标准,称为ANSI C或现代C。后来,ANSI C标准被ISO(国际标准化组织)采纳成为ISO9899,简称C89,其第一个版本文件在1990年出版。

到了20世纪90年代,C++标准在不断更新,C语言标准又得到改进,就是ISO/IEC9899:1999(1999年出版),俗称C99,该标准于2000年3月被ANSI采用。

但是各个公司对C99的支持不同,GCC和其他一些商业编译器支持C99的大部分特性,微软和Borland不感兴趣,如vc++6.0不完全支持C99.

C语言是面向过程的语言,按照算法的实现过程逐条语句编写,通知计算机一步一步怎么做。面向对象程序设计(OOP)方向:C++语言,也叫“带类的C”。

由于设计Internet上的Web浏览器的需要,1994年出现了Java语言,不仅支持OOP,而且具有软硬件平台无关性的特点,适合进行网络开发。Java脱胎于C++,被称为C++的衍生语言。2000年,微软公司推出Microsoft Visual Studio.Net,是一个具有公共语言子集的开发平台,实现了多种语言及其类库的无缝集成,使应用程序开发更容易、更简单。C#是专为这一平台推出的全新语言,它也派生于C和C++,并具有语言简洁、面向对象、与Web紧密结合、卓越的安全性能、灵活性和兼容性俱佳等特点,称为NET平台一流的网络编程工具。

格式输出函数:

printf("格式控制字符串",输出项目清单);

%d用来输出十进制整数;

%f用来输出实数;以小数形式输出单、双精度实数;

x,X以十六进制形式输出无符号整数,不输出前缀0x;

u以十进制形式输出无符号整数;

e,E以指数形式输出单、双精度实数;

g,G以%f或%e中较短的输出宽度输出单、双精度实数;

c输出单个字符;

s输出字符串。

输出项目清单中包含0个或多个输出项,可以是常数、变量或表达式,当有多个输出项时,相互之间用逗号隔开。

注意“格式控制符必须与对应输出项的数据类型严格一致。

格式输入函数:

scanf(”格式控制字符串“,输入项目清单);

输入项目清单中至少包含一个输入项,且必须是变量的地址(表示形式是在变量名前加&),当有多个输入项时,相互之间用逗号隔开。

printf()与scanf()是C编译系统提供的库函数,不是C语言的组成部分,而是由C编译系统提供的一些非常有用的功能函数,例如各种输入输出函数、数学函数、字符串处理函数等,可供用户在自己的程序中直接调用。stdio.h

long long int 64位长度,其取值范围是-2^63-1~2^63-1;

unsigned long long int取值范围是0~2^64-1.

unsigned char 1字节 0~255

signed char  -128~127

short [int] 2字节 -32768~32767

unsigned short [int]  0~65535

[signed] long [int] 4字节 -2147483648~2147483647

unsigned long [int] 4字节 0~4294967295

float 4字节

double 8字节

标识符:

C语言规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线。建议变量名的长度最好不要超过8个字符。

符号常量:

在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。

符号常量在使用前必须先定义,有以下两种定义形式:

1、#define  标识符  字符串

#define也是一条预处理命令(预处理命令都以#开头),称为宏定义命令,其功能是把该标志符定义为其后的字符串。

2、const  类型  标识符 = 常数

标识符是只读常量,并且其值在程序运行的过程中不可以改变,习惯上符号常量的标识符用大写字母,变量标志符用小写字母,以示区别。

符号常量与变量不同,值在其作用域内不能改变,也不能再被赋值。使用符号常量的好处是含义清楚,能做到”一改全改“。

八进制整常数必须以0开头,基数取值是0~7.

0x或0X是十六进制前缀,基数取值0~9,A~F或a~f。


1表达式计算中的自动类型转换

1)若参与运算的量的类型不同,则先转换成统一类型,再进行计算;

2)转换按数据长度增加的方向进行,以保证精度不降低,如Int和long型运算时,先把int转换成long型后再进行运算;

3)所有浮点运算都是以双精度进行的,即使只含有float单精度度量运算的表达式,也要先转换成double型,再做运算;

4)char型和short型参与计算时,必须先转换成Int型。

在赋值运算中,等号两变量数据类型不同时,等号右边的类型将转换为左边类型。如果右边数据类型比左边长时,将丢失一部分数据,会降低精度,丢失的部分按四舍五入向前舍入。

2强制类型转换

(类型说明符) (表达式)

必须都加括号,单个变量可以不加。

无论是强制转换还是自动转换,都只是为了本次计算的需要而对变量的数据长度进行临时的转换,不改变数据说明时对该变量定义的类型。

sizeof运算符来测试不同数据类型的长度(字节数)。

%5.4lf  小数形式:指输出宽度为5,精度为4,若实际长度超过5,则按照实际位数输出,小数位数超过4位部分被截去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值