C 变量与常量 数据类型

终于正式开始学C做笔记了 本来想一长篇说点的,想想还是边看边记,记得少点搜索起来方便。

变量与常量的命名规范与PHP类似,常量全部用大写字母,而变量使用小写字母,C也同样区分大小写,命名时不要以下划线_开头。局部变量一般使用较短的变量名,外部变量一般使用较长的名字。

保留字符的问题就不多说了,差不多就是那回事。

如同PHP那样,看一下C的数据类型:

-- char 字符型,占用一个字节,可以存放本地字符集中的一个字符
-- int 整型,通常反映了所用机器中整数的最自然长度
-- float 单精度浮点型
-- double 双精度浮点型

另外 这些基本类型前面还可以加限定符。

shortlong(限定加在整型前),此时int可以省略,short类型通常是16位,long通常为32位,int可以为16位或则32位,各编译器自主选择合适的编译长度,但遵循以下限制:

shortint类型至少16位,long至少32位,short类型不得长于int类型,int类型不得长于long类型

signedunsigned可用于限定char类型或者任何整型,unsigned类型的数总是正数或者0,和其他语言一样可以把范围扩大一倍(比如原来是-128~127,unsigned就变成了0~255)

long double类型表示高精度的浮点数,float,double,long double可以表示相同的长度,也可以表示两种或三种不同的长度。

变量声明时,默认情况下,外部变量与静态变量都被初始化为0,未经显式初始化的自动变量的值为无效值。(自动变量是什么:C 外部变量的使用

变量可以通过const限定符限定,值不能被修改,对鼠族而言,限定数组所有元素的值都不能被修改(有点像是常量了)

const double e = 2.71828;
const char msg[] = "warning";

也可以配合函数使用:

int strlen(const char[]);

函数不能修改数组的值。

总之,虽然看着少很简单,但是参考PHP的变量类型,总觉得深深的不够用啊。


常量声明时,long类型以字母l或者L结尾,如果一个整数太大以至于无法用int表示,也将会被当作long类型处理,无符号常量以字母u或者U结尾,ul或者UL表示unsigned long

没有后缀的浮点数常量为double类型,后缀f或者F表示float类型,后缀lL表示long double类型。

整型数除了十进制外,带前缀0表示为八进制形式,前缀为0x或者0X则表示为十六进制形式,同样也可以用上面说的结尾。

字符常量就是一个整数,如'x'可以参与运算,如'0'不是数字0,在ASCII中表示48,也可以进行比较,或者是像其它整数一样参与运算。

转义字符只表示一个字符。

使用\ooo或者\xhh可以表示八进制和十六进制,如:

#define VTAB `\013`
#define BELL `\007`

#define VTAB `\xb`
#define BELL `\x7`

常量可以是字符串,如"I am a string"(也叫字符串字面量)在字符串中用\"表示双引号字符串。
并且:
"hello " "world"等于"hello world"
字符串内部使用一个空字符\0作为结尾,所以储存字符串的物理单元比双引号内的字符数多一个。

可以用标准库(<string.h>)函数strlen(s)返回字符串参数s的长度,不包末尾的\0

应此'x'"x"是不同的,前者是一个整数,而后者是一个字符x以及一个结束符0组成的字符数组。(这样也就能解释之前的程序为什么我们用的都是单引号如'\n'来检测换行符)

很特殊的是一个枚举常量的东西,以前从来没有接触过,有点像是PHP键值对数组,不过更为特殊
一般的常量都是用#define声明的,但我们也可以用enum

例如

enum boolean{ NO, YES };

其中NO的值为0,第二个为1,以此类推。

调用时:

printf("%d", YES);    /* 会输出1 */

再比如第二个例子,就可以理解为什么我说像数组了

enum escape { BELL = '\a', BACKSPACE = '\b', TAB = '\t', NEWLINE = '\n', VTAB = '\v', RETURN = '\r'};

感觉是不是很像,除了用的是中括号以外感觉确实没什么区别了,最后一个不要逗号。

如果只指定部分值,那么将会递增,如:

enum months { JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC };

比如这个,FEB值为2,MAR为3……

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 知识, 语法

添加新评论