黑马程序员 《ios零基础教程》

 

[置顶] 黑马程序员 《ios零基础教程》 2014-3-19总结

分类: C语言每日学习总结   91人阅读  评论(0)  收藏  举报

目录(?)[+]

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


今天学习了数据、常量和变量。


一、数据

数据分为两种:静态数据和动态数据。

1、静态数据

1)概念:静态数据是指一些永久性的数据,硬盘内存比较大,所以一般的存储在硬盘中。

2)存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在。

3)哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。

2、动态数据

1)概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在电脑内存中。

2)存储的时长:计算机关闭之后,这些临时数据就会被清除。

3)哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临 时数据,这些临时数据都是存储在内存中的。 因为是内存的访问速度比硬盘快N倍,所以应用程序加载到硬盘中去执行。

3、静态数据到动态数据的转换

静态数据到动态数据的转换:暴风影音 —> 计算机内存  <— 硬盘中内容(这里用的老师图)

                            


4、数据的大小

1)不管是静态还是动态数据,都是有0和1组成的。

2)1 Byte = 8bit , 1kb = 1024b , 1mb = 1024kb,1GB=1024MB ,1TB=1024GB      


二、常量和变量

C语言数据类型图(这里用的是老师的图)

                          


1、常量分类

1)整型常量(int)
即int类型的数据,包括了所有的整数 

2)浮点型常量(float\double):分为double和float两种数据类型
a)double:双精度浮点型,就是小数。如5.43、-2.3、0.0等,注意,0.0也算是个小数。
b)float:单精度浮点型,也是小数,比double的精确程度低,也就是说所能表示的小数位数比较少。为了跟double区分开                来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f


 3)字符常量(char)
一个数字(0~9)、英文字母(a~z、A~Z)或者其他符号(+、-、!、?等)用单引号括起来,构成字符常量,            如'6'、'a'、'F'、'+'、'$'等。

注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'


 4)字符串常量
将一个或者多个字符用双引号("")括起来,就是字符串常量。如"6"、"男"、printf("Hello World");语句中的"HelloWorld"也是字符串常量。


2、变量

1)定义变量的目的:在内存中分配一块存储空间给变量,方便以后存储数据。
下面描述不同编译器下各种变量占的字符空间(单位:字节)

                                                       


2)变量的赋值

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. /* 
  2. 1.变量的定义:变量类型   变量名 
  3.               int     score 
  4. 2.变量的赋值 
  5.  scare = 100; 
  6.  scare = a; 
  7.  scare = b = 100; 
  8.   
  9.  变量的输出 
  10.  int a = 200; 
  11.  printf("%i",a); 
  12.  常用格式符: 
  13.  1>%d\%i   整数(int) 
  14.  2>%f      小数(float、double) 
  15.  3>%c      字符(char) 
  16. */  
  17.   
  18.   
  19. #include <stdio.h>  
  20.   
  21. int main(int argc, const charchar * argv[])  
  22. {  
  23.     //这里表示 a赋值给b,然后30又赋值给b,所以b的值改变,a的值不变  
  24.     int a = 10;  
  25.     int b = 20;  
  26.     b = a;  
  27.     b = 30;  
  28.       
  29.     //%d是一个格式符(占位符)  
  30.     printf("a = %d\n  b = %d\n",a , b);  
  31.       
  32.     float height = 1.78f;  
  33.       
  34.     //%f用来输出小数,默认是6位小数  
  35.     printf("身高是%.2f\n",height);  
  36.       
  37.     char scoreGrade = 'D';  
  38.       
  39.     //%c用来输出字符  
  40.     printf("积分等级是%c\n",scoreGrade);  
  41.     return 0;  
  42. }  


3)变量在函数中得作用域

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. /* 
  2.  1.作用域(作用范围) 
  3.  从定义变量的那行代码开始,已知到函数结束 
  4.  */  
  5.   
  6. #include <stdio.h>  
  7.   
  8. int test()  
  9. {  
  10.     int score = 200;  
  11.     return 0;  
  12. }  
  13.   
  14. int main(int argc, const charchar * argv[])  
  15. {  
  16.     int score;  
  17.       
  18.     test();//这里调用完test函数之后,里面的score内存就消失了,   
  19.       
  20.     score = 100;  
  21.       
  22.     printf("score = %d\n",score);  
  23.     return 0;  
  24. }  



4)变量在代码块中得作用域

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. /* 
  2. 1.代码块的作用:手机内存有限,为了提高手机内存的及时释放,为了提升性能。 
  3. 2.变量的作用域:从定义变量的哪一行代码开始,一直到所在的代码块结束 
  4.  */  
  5. #include <stdio.h>  
  6.   
  7. int main(int argc, const charchar * argv[])  
  8. {  
  9.     /*{ 
  10.         int a = 10;//这里的代码块只能在这个{}中有效使用,其作用域是不能逃出此{} 
  11.     }//这个}执行代表这块{}函数执行完毕,将在内存中被释放消失 
  12.     printf("a = %d",a);//所以这里的printf函数不能使用变量a 
  13.     */  
  14.     int  score = 100;  
  15.       
  16.     {  
  17.         int score = 200;  
  18.         {  
  19.             int score = 50;//这样函数输出结果score =200 ,score = 100  
  20.            /* score = 50;//这将score赋值改变为50,这样函数输出是score = 50 ,score =100  */  
  21.         }  
  22.         printf("score = %d",score);//这里能调用外面的score变量(注释此代码块中的int score做实验),但是因为代码块存在,所以这里的printf输出采取就近原则,而不是给score赋值两次,(如果赋值两次,那么第二个printf输出也是200,但结果是100,充分证明了代码块中的就近原则)  
  23.     }  
  24.       
  25.     printf("score = %d",score);  
  26.     return 0;  
  27. }  


5)练习题

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. //交换整形变量a、b的值。比如a = 10、b = 11;交换之后a的值是11,b的值是10,用两种方式实现  
  2.   
  3.   
  4. #include <stdio.h>  
  5.   
  6. int main(int argc, const charchar * argv[])  
  7. {  
  8.       
  9.     //1、利用第三方变量(工作)  
  10.     /*int a = 10 ,b = 11; 
  11.     int temp; 
  12.      
  13.     temp = a; 
  14.     a = b; 
  15.     b = temp;*/  
  16.       
  17.     //2、不利用第三方变量交换a、b的值(面试,有印象)  
  18.     int a = 10 ,b = 11;  
  19.       
  20.     a = b - a;  
  21.     b = b - a;  
  22.     a = b + a;  
  23.       
  24.     printf("a = %d,b = %d",a ,b);  
  25.     return 0;  
  26. }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值