黑马程序员——C语言中的数据
2015-08-26 11:17
253 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、数据
1、数据的概念我们的生活中,充斥着数据。因此,计算机必须有处理数据的能力,而计算机对数据处理则必须依赖于编程语言中的数据。作为最重要的一个编程语言,C语言中也必须有数据。
2、数据的类型
生活中的数据多种多样,因此计算机想要高效率地处理就必须对数据分类,这就形成了不同的数据类型。C语言中有五大数据类型:基本类型、构造类型、指针类型、空类型、定义类型。
常见的数据类型有:int、float、double、char。
3、数据类型占用字节说明
在C语言中,不同的数据类型占用不同的存储空间,如下表所示
4、不同数据类型的表示范围
二、常量
1、常量的概念C语言有丰富的数据类型,然而从数据在使用中变化与否的角度,则可以分为常量和变量两大类。常量,表示一些固定的数据,也就是不能改变的数据。
2、常量的分类
常量有以下几种类别:
整型常量:二进制、十进制、八进制、十六进制
实型常量:单精度、双精度
字符型常量:普通字符、转义字符
字符串常量:注意字符串常量和字符型常量是不一样的
3、不同类型常量的表示方法
1)整型常量
整型常量的书写
// 1)10进制整形常量(计算默认的使用10进制常量表示整数) 10; 18; // 2)8进制整型常量 //以0开头 045; //这是一个8进制的整数,误区:不是10进制的15 // 3)2进制整型常量 //以0b(0B)开头 0b11111111111111111111111111111111;//32位的1 //表示的是一个-1 // 4)16进制整型常量 //以0x开头 0x438fa; //这是一个16进制的整数
2)实型常量
实型常量的书写
//1)单精度的常量 //以f结尾 2.3f; //表示单精度的小数 占用4个字节 //2)双精度的常量 2.3; //计算机中默认的以双精度的形式表示一个小数
3)字符型常量
字符型常量的表示
//用单引号('')括起来的单个字符,里面可以是字符、数字、符号、就是表示字符常量 'a';//1 '*'; '&'; //都是字符常量 //'ab'; //不合法的 //特殊的字符常量(转义字符) '\n'; '\t'; '\\'; '\r'; //这也都是字符常量(特殊的字符常量,是转义字符)
4)字符串常量
字符串常量的表示
//用双引号括起来,里面可以是字符、数字、符号 "abc"; //a b c \0 "a"; //a \0 2 "**"; " "; //包含一个空格 ""; //空字符串,什么东西都没有4、定义常量的方法(后补)
三、变量
1、变量的概念顾名思义,变量就是在使用过程中可以变化的量。然而,变量的本质是代表内存的一个空间,用来存放经常变化的数据。
变量的表示有两个要素:1)变量的类型;2)变量名称:变量的名称是我们操作变量的依据
2、变量的使用
1)定义一个变量
格式1: 变量的类型 变量的名称
int a; //定义了一个 int 类型(4个字节)的变量,变量名是a char ch; //定义了一个char 类型的变量,变量名是ch float f;格式2:变量类型 变量名1,变量名2,变量名3(用于一次性定义多个变量)
int a,b,c,d; //定义了4个int类型的变量,变量名分别为a,b,c,d变量名的命名规范:a.严格遵守标识符的命名规范;
b.变量名不能同名(某些情况下可以)
2)变量的初始化
变量初始化的原因
//定义了一个int整型的变量a int a; //此时a有没有值?有值 //值的可能性:1)系统的数据 2)上一个程序遗留的数据 3)垃圾数 //因为变量定以后,是有值得,为了防止变量的原来的值对我们的程序产生影响,我要初始化 //初始化:给变量赋初值初始化的方法一:定义的同时进行初始化
格式1(完全初始化): 变量名= 变量值
int num1=0,num2=0; //定义了两个 int 类型的变量,变量名称为num1和num2 //num1的值是 0 num2 的值也是0
格式2(部分初始化):
int num3=0,num4; //定义了两个 int 类型的变量, //num3 的值 是0 num4的值我们也不知道初始化的方法二:先定义变量,后初始化
int num5,num6; //给num5初始化 num5 = 0; //给num6初始化 num6 = 0;</span></span>初始化的方法三:使用一个变量,初始化另外一个变量
int num7 = num5; //用num5的值给num7进行初始化初始化的方法四:给变量连续初始化
int num8,num9,num10; num8 = num9 = num10=10; //给num8 num9 num10都赋值为10;
3)变量的使用:存值和取值
int a; //0 nil null 其他 a = 0; //0 printf("a = %d",a); a = 23; //23 设置a的值 int num11 = a; //a 23 num11 23 ,先取出a的值23,再赋值给num11
4)变量的使用注意
等号的左侧必须是一个变量
等号的右侧可以是变量、常量、表达式
等号的左侧一定不能写一个常量
3、变量的作用域
作用域:可以理解为变量可以使用的范围
变量按照作用域分类:局部变量和全局变量
1)局部变量
[b]函数的内部或者代码块的内部定义的变量,都称之为局部变量[/b]
代码块:
{ 代码块语句; } { 代码块2 } <span style="font-family:SimSun;">//</span>代码块是可以嵌套的 { 代码块语句 { 代码块语句 } }局部变量的作用域:从局部变量定义的位置开始,到它所在的代码块或者函数体的“}”为止。值得注意的是,在代码块的内部可以定义和块外部同名的变量,块内部的会暂时屏蔽(外部的不起作用)块外部的变量的作用域。另外,局部变量的概念是相对的,即同一个变量,相对于上一级的代码块是局部变量,但相对于次一级的代码块就是全局变量了。
2)全局变量
在函数的外部定义的变量是全局变量
全局变量的作用域:从定义的位置开始,到文件末尾,在不同的函数中都可以使用
//定义一个全局变量 float score = 59.9f; int main(int argc, const char * argv[]) { //定义局部变量 //注意 age 和 age1都是局部变量 int age; printf("age = %d\n",age);//0 //下面是一个代码块 { //定义了另外一个局部变量age1 值是 10 int age1 = 10; printf("age1 = %d\n",age1); //10 //age 等于100,访问代码块外部的age age = 100; printf("age = %d\n",age); //100 //在代码块的内部可以定义和代码块外部同名的变量 int age = 1; printf("age = %d\n",age); //1 } //代码块结束 //printf("age1 = %d",age1); //错误的,age1已经释放了 printf("age = %d\n",age); //100 1 ? //使用全局变量 score printf("test:main = %f\n",score);
相关文章推荐
- C++ 预处理、编译、汇编、链接
- 对比C语言中memccpy()函数和memcpy()函数的用法
- 《算法导论》的桶排序C++实现
- C++ STL 中的 bitset 用法
- [DP]HDOJ1158 Employment Planning
- C语言判断大小端对齐
- C语言strtok()函数:字符串分割
- C++注释规范
- C++虚继承的内存模型
- VC++编写DLL供C#使用
- 链表排序问题
- C++指针加整数、两个指针相减的问题
- NOI系列赛中 C++容器使用总结
- C语言判断字符是否为可打印字符的方法
- 【POJ2031】【最小生成树】【g++ f c++ lf】
- C++函数匹配
- POJ C++程序设计 编程题#1 编程作业—继承与派生
- C语言 异步回调
- 九之再续:教你一步一步用c语言实现sift算法、上
- C++ Primer Plus 第四章笔记