1.基本数据类型
{
整型家族:
整型家族包括 字符型(char)、短整型(short int 可以简写为 short)、整型(int)、长整型(long int 可以简写为 long)。
都可以分为有符号(signed)和无符号(unsigned)
变量的最小范围
//长整型至少和整型一样从,整型至少和短整型一样长
//不同编译器的变量大小不同,这只是最小范围,具体根据编译器而定
-----------------------------------------------------------
类型 // 最小范围
char // 0 ~ 127
signed char // -127 ~ 127
unsigned char // 0 ~ 255
short int // -32767 ~ 32676
unsigned short int // 0 ~ 65535
int // -32676 ~ 32676
unsigned int // 0 ~ 65535
long int // -2147483647 ~ 2147483647
unsigned long int // 0 ~ 429467295
整型字面值 : 字面值 是 字面值常量 的缩写--这是一种实体,指定了自身的值,不允许发生改变
// ANSIC 允许命名常量(声明为 const 的变量,被初始化后,它的值不能改变)
十进制:正常使用
整数 八进制:数值前面以0开头
十六进制:数值前面以0x开头(0~15从小到大依次表示为0 1 2 3 4 5 6 7 8 9 a b c d e f(字母大小写均可) )
枚举类型(enum): 指它的值为符号常量而不是字面值的类型,声明形式如下
enum student {student1,student2,student3,student4,student5};
声明了一个枚举类型,名称为student。可以对里面的student1,student2,student3,student4,student5进行赋值(若未赋值,则默认为0~4,每次加1)
//注意:同一程序中不能定义同类型名的枚举类型;不同枚举类型的枚举元素不能同名
浮点类型:小数或者指数无法按照整型存储,可以用浮点数的形式存储。
浮点数家族包括单精度(float)、双精度(double)、和拓展精度(long double,部分机器支持)。
//ASIC 规定:long double 至少和 double 一样长, double 至少和 float 一样大。
//所有浮点类型至少能够容纳 10e-37 ~ 10e+37 (10的-37次方 ~ 10的37次方)
指针: 变量的值存储在计算机的内存中,每个变量都占据一个特定的位置。每个内存位置都由地址唯一确定并引用(可以参考门牌号码)
指针就是地址的另一个名字。指针变量就是一个其值为另外一个(一些)内存地址的变量。
指针常量:本质上一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。
字符串常量:字符串在本质上是多个字符组成的字符数组,C语言规定,在每个字符串常量的结尾,系统会自动加一个字符 '\0' ,作为该字符串的结束标识符,根据是否是 '\0' 判断字符串是否结束。
// '\0' 是系统自动加上的,不是人为添加的。
}
2.基本声明
{
初始化:在一个声明中,可以给一个表量变量指定一个初始值,方法是在变量后面跟 一个等号(赋值号),后面是赋给变量的值
例如: int i = 0; //声明i为一个整型变量,其初始值为0.
声明一维数组:在数组名后面跟一对方括号([]),方括号里是一个不可变化的整数(不能是变量),指定数组中元素的个数
例如: int arr[10]; //声明一个有10个元素的数组为arr,数组下标从0开始,依次加1.
声明指针:定义指针的一般类型为:
<类型> <变量标识符>,<变量标识符>,…;
需要注意的是:
对于32位操作系统,内存地址大小是4个字节,指针变量的大小也需要4 个字节。
对于64位操作系统,内存地址大小是8个字节,指针变量的大小也需要8个字节。
隐式声明:有几种声明,其类型名可以省略。例如:如果函数不显示声明返回值的类型,就会默认返回整型。(一般编译器会报错)
}
3.常量:常量和变量的样子完全一样,只是值不能改变。
4.作用域
{
代码块作用域:在代码块的定义的变量,具有代码块作用域。作用范围是从变量定义的位置开始,到标志该代码块结束的右大括号(})处。
尽管函数的形式参数不在大括号内定义,但其同样具有代码块作用域,隶属于包含函数体的代码块
文件作用域:任何在代码块之外声明的标识符都具有文件作用域,作用范围是从他们的声明位置开始,到文件的结尾处都是可以访问的
函数名也具有文件作用域,因为函数名本身也是在代码块之外
原型作用域:任何在代码块之外声明的标识符都具有文件作用域,作用范围是从他们的声明位置开始,到文件的结尾处都是可以访问的
函数名也具有文件作用域,因为函数名本身也是在代码块之外
函数作用域:只适用于goto语句的标签,作用将goto语句的标签限制在同一个函数内部,以防出现重名标签
//一个函数中的所有语句标签必须唯一
}
C语言 数据
最新推荐文章于 2024-08-20 20:01:22 发布