• 变量的命名规则以及规范

  1. 变量的命名规则

     1>变量名只能由任意的字母,下划线和$以及数字组成,注意不能用数字开头
     2>区分大小写
     3>变量一定要先定义再使用
     4>同一个大括号中不能定义名字相同的变量
     5>不能和C的关键字同名
  2. 命名规则

    1> 有意义 可以见闻知意.例如:int score = 0;//score变量代表一个分数

    2> 驼峰命名法.//例如:int sumScore;//代表总分
 
  • printf的函数的使用补充

          %0md:  m是1个整数,不足的地方就会以0补足.
          %.nf:     n是1个数字,代表要输出小数点后面多少位.
    %.nlf:     n是1个数字,代表要输出小数点后面多少位.
           %g:         用于打印浮点型整数时,会去掉多余的0,之多保留六位有效数字
 
  • 数据类型转换

  1. 当赋值符号两边的数据类型不同的时候,数据类型转换时自动的,不需要程序员插手
  2. 隐式转换: 自动转换    编译器自动帮你判断转换成声明类型    int num = 3.333;

    显示转换: 强制转换    程序员自己写代码指定你的数据转换成声明类型 int num=(int)3.33
 
  • scanf函数需要注意的细节

  1. 变量的命名要符合规范.
  2. 注释要有,可以帮助你理清思路.
  3. scanf函数不是printf函数,所以后面不用加\n.
  4. scanf函数后面写的是变量的地址,而不是变量.  格式:&变量名
  5. 如果之前的程序正在运行,没有结束,那么新程序运行之前,需要将旧程序结束掉.
  6. 占位符要和后面的类型对应,否则就会出现意想不到的后果.
 
  • 使用scanf函数一次接收输入多个数据

  1. 不用指定分隔符: 默认的分隔符是空格或者回车.

    scanf("%d%d",&num1,&num2);
  2. 指定分隔符: 可以自定义输入时的分隔符,在控制台输入变量的时候,分隔符也要一起输入

    scanf("%d-%d",&num1,&num2);//其中-是分隔符.
 
注意:
     1>.一旦指定了分隔符,那么久必须使用指定的分隔符,空格和回车就无法使用了.
     2>.如果使用scanf函数一次输入多个数据,只能是数字(整型和浮点型),如果有char混入,会出问题.
 
  • scanf函数的缓冲区

  1. 当执行scanf函数的时候,并不是直接接收从键盘中输入的值,而是先检查缓冲区中是否有数据,如果有数据才会从缓冲区中取,如果没有数据,才会让我们输入.
  2. 当我们输入数据的时候,我们输入的数据并不是直接赋给scanf指定的变量,而是先存储到声明的缓冲区,scanf函数再从缓冲区读取数据.
  3. 如果取出的是数字,整数或者小数,缓存区的空格,tab,回车就会自动被忽略,如果要拿的是一个char数据,他就不会放过任何一个数据.
  4. 这个时候就会造成一个后果,如果缓冲区中有数据,而我要接收一个char数据,它就有可能不会让我输入,直接将缓冲区中的数据输出.
  5. 解决方案:在输入字符之前,将缓冲区中的数据全部清空.

    rewind(stdin);
 
  • 交换两个变量的值

  1. 第一种方式:第三方变量

    int num1 = 100;

    int num2 = 200;



    int temp = num1;

    num1 = num2;

    num2 = temp;
  2. 第二种方式:两数相加再相减

    int num1 = 100;

    int num2 = 200;



    num1 = num1 + num2;

    num2 = num1 - num2;

    num1 = num1 - num2;//口诀,121加减减
  3. 第三种方式:异或运算 ^

    int num1 = 100;

    int num2 = 200;



    num1 = num1 ^ num2;

    num2 = num1 ^ num2;

    num1 = num1 ^ num2;
 
  • 算术表达式

  1. 算术表达式的值有没有类型?

    有,算术表达式最终结果类型,取决于精度最高的那个数

    精度 —> 浮点数 > 整数  ———> double > float > int

    例如: float result = 10 + 1.1f;
            double result2 = 1.2 + 1.2f;
  2. 当参与运算的数据类型一致,算术运算表达式的结果的类型就是参与运算的数据的类型
  3. 如何获取两个整数的真实的商

    //思路:两个任意数据 乘以 1.0

    double result = (1 * 1.0) / 3;
 
  • char数据参与算术运算

  1. char 变量/常量 和 整数 一起运算直接计算,拿ASCII码

    需要记住三个字符的ASCII,  'a'= 97, 'A’'= 65, '0' = 48
  2. 如何把小写字母转化为大写字母

    char char_xiao = 'a'- 32;
 
  • 符合赋值运算符

  1. 是什么?

    把一个变量在自身的基础之上进行变化
  2. 常见的符合赋值运算

    int  num = 10;

    num += 10;———>等价于 num = num + 10;

    num -= 10;———>等价于 num = num - 10;

    num /= 10;———>等价于 num = num / 10;

    num %= 10;———>等价于 num = num % 10;

ios开发之C语言第3天的更多相关文章

  1. ios开发之C语言第一天

    最近在学习ios开发,先学习C语言,再学习OC和swift.正所谓"万丈高楼平地起",打好基础是很重要的,所以C语言也必须好好学习.学习中所使用的操作系统是OS X,开发工具是Xc ...

  2. iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite

    为什么要搞一搞SQLite的C语言接口规范呢? 因为在做iOS开发中难免会遇到操作数据库的情况,你可以使用第三方的FMDB等,或者使用CoreData.但我们还是有必要去搞清楚如何去使用SQLite的 ...

  3. 李洪强iOS开发之OC语言前期准备

    OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应 ...

  4. iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例

    本篇博客就使用前面操作SQLite的知识来实现如何去插入,删除和更新数据.然后再把操作SQlite数据库常用的方法进行一个封装.把常用方法进行封装后,把Cars数据库中的其中一个表的数据进行查询,并在 ...

  5. iOS开发之SQLite--C语言接口规范(四) —— Result Values From A Query

    数据库的在上一篇博客中<SQLite之C语言接口规范(三)——Binding Values To Prepared Statements>用到了如何从查询结果中取出结果值.今天的博客就详细 ...

  6. iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements

    在前面的博客中已经介绍了如何连接SQLite数据库,并且简单的查询和遍历结果集.在前面用到了sqlite3_stmt *stmt,也就是预编译后的SQL语句.在本篇博客中会了解一下sqlite3_st ...

  7. iOS开发之SQLite-C语言接口规范(二) —— Prepared Your SQL Statements

    在<SQLite的C语言接口规范(一)>中介绍了如何去连接打开数据库,本篇博客就介绍如何操作数据库,本篇主要给出了如何执行数据库查询语句(Select), 然后遍历结果集.本篇博客就直接使 ...

  8. 李洪强iOS开发之OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  9. 李洪强iOS开发之OC语言类的深入和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...

  10. 李洪强iOS开发之OC语言构造方法

    OC语言构造方法 一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法 ...

随机推荐

  1. MFC框架中消失的WinMain()

    学过一段时间的MFC之后,很多人大概都有一个疑问:在MFC中,WinMain()哪去了?因为任何一个使用过Win32 SDK编程的人都知道,WinMain()函数是Win32程序开始的入口点,可是在M ...

  2. 从BAE到SAE,从SAE又回到BAE

    版权声明:本文为博主原创文章,未经博主允许不得转载. [很久以后] 这段话是很久之后补充的,发现错误要勇于改正,以下红色字体是对以前观点的改正, 大概总结下: 1.bae最大缺点是需要备案,不过现在看 ...

  3. AIDL-Android接口描述语言实现跨进程通讯

    在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, ...

  4. 【转】Cocos2d-x 2.x CCSprite 灰白图的生成(利用shader设置)——2013-08-27 21

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=325 游戏中人物死掉后要把人物头 ...

  5. Cocos2D-x培训课程

    1.1 Cocos2D-x 什么是cocos2d-x cocos2d-x在游戏开发中的运用 cocos2d-x的几个重要版本特点 iOS环境下搭建cocos2d开发环境 windows平台搭建coco ...

  6. Java基础知识强化之IO流笔记36:InputStreamReader/OutputStreamWriter 复制文本文件案例

    1. 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中. 数据源:  a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader 目的地:  b.t ...

  7. ImageView的属性android:scaleType

    ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType). android:scaleType是控制图片如 ...

  8. SqlServer查找表中多余的重复记录

    1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from ...

  9. WPF-TxtBox控件利用KeyDown来控制键盘输入

    private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)        {            TextBox txt = ...

  10. FOR XML PATH 应用及其反向分解

    数据库环境:SQL SERVER 2005 我们实现将同一组的数据内容合并到一行的时候,可以通过FOR XML PATH来实现. 有数据如图1,要实现图2的效果              1.图1到图 ...