iOS开发之C语言实用概述

一、常量和变量:
常量的定义:const int a = 10;

常量:
整型常量
实型常量
字符型常量
字符串常量

变量:
整型变量
实型变量
字符型变量
字符串变量

变量定义:

  1. 先声明,后赋值
    int a;
    a = 10;
    2)边声明,边赋值
    int a = 10;

变量的属性:
1、变量的类型
说明变量存放什么类型的数据
2、变量的名称,变量名
根据变量名来存取变量的值
3、变量的值
变量所占的内存中实际存放的值
4、变量的地址
如何获取变量的地址?
int a = 10;
&a // 获取到了变量啊的地址

二、注释的使用

  1. // 单行注释
  2. /*
    多行注释
    */

注意点: 多行注释的嵌套,以/* 开始, 以*/结束。如果嵌套,会有问题。因此多行注释不能嵌套使用。

三、printf函数,scanf函数。
1)、printf(“格式控制字符串”,输出项列表);
%d 十进制整型
%lu 十进制无符号长整型
%f 浮点类型
%c 输出字符
%s 输出字符串

注意点
%f——》保留两位小数,%.2f

%5d 右对齐

%-5d 左对齐 ,如果位数不够,用空格来顶位。

%05d 右对齐,如果位数不够,以0来顶位。

输出项列表中包含格式控制字符串中要输出的对应类型的变量。
(类型要和格式控制一致,位置一一对应)

2)、scanf(“格式控制字符串”,输入项列表);
输入项列表使用的是变量的地址。
int a ;
scanf("%d",&a);
注意:
连续使用scanf函数做输入,会出现跳过用户输入,直接执行的问题。
原因:
scanf函数的缓冲区。
解决:
清除缓冲区里的内容。吸收'\n'。
getchar()

scanf();
getchar();

四、关键字和标示符
关键字:
就C语言已经占用的单词,我们不可以再重新定义。我们自己定义的标示符,不能和关键字重名。
表示符的命名规则:
1、只能能以字母、数字、下划线、美元符号命名
2、不能数字开头
3、大小写区分
4、不能和关键字重名

五、运算符
算数运算符:+-*/ % 左结合性
赋值运算符 := 结合性:右结合性
复合赋值运算符 += -= *= /= .... x += 1;相当于 x = x+1;
关系运算符 比较大小的,>, >= ,< ,<= 优先级高于 ,== ,!= ,左结合性
sizeof运算符 看在当前编译环境下,某个类型在内存中占几个字节。
sizeof(常量)、sizeof(变量)、sizeof(数据类型)。
自增、自减运算符 ++ ,--。 如果++a(前缀),先加一,在使用; a++(后缀) ,先使用,在加一。逻辑运算符 && ,||, !.优先级:!> && > ||
&& 都真才真
|| 一真就真
! 真假颠倒
逻辑短路:
与短路: 表达式1 && 表达式2,短路条件:表达式1的值:假,就不去计算表达式2的值了。
或短路: 表达式1 || 表达式2, 短路条件:表达式1的值 : 真,就不去计算表达式2的值了。
逗号运算符
,优先级最低。
结合性:左结合性,(a+b,a+c,d+a); 从左往右计算。
逗号表达式返回值:是最右边的表达式的值。
位运算符
& | ~,^ >> ,<<

六、进制转换
10-2 互转
10 -8,10 -16

x进制 基:X,从右数第n位:n;第n位的位权:x^(n-1)。
x进制转换成10进制的万能公式:
x进制数是:abcd,从有数的每一位上的数字乘以该位的位权后的值相加即等于十进制的值。
十进制值 = dx^0+cx1+b*x2+ax^3
2->10 :
16 8 4 2 1对应的位权
1 0 0 1 1=1
1 + 12 + 04 +08+116=18

2->16: 四合一
16->2 :一拆四
2-》 8 : 三合一
8-》2:一拆三

七、位运算
位运算符:
&(按位与,两位同时为一,结果才是一) ,|(按位或,两位有一个是一结果就是1),(安位异或,两位不相同的时候结果才为1),~(0->1,1->0,符号位跟着一起变,和求反码不一样),<<(左移,向左移动n位,相当于乘以2n,有可能改变数值的正负,不够补0),>>(右移,向右移动n位,相当除以2^n,不够的补符号位,它不会改变一个数的正负,)

八、三目运算符:、
一般格式:表达式1?表达式2 : 表达式3
执行过程: 先求表达式1的值,如果是真:计算表达式2,否则计算表达式3.
三目运算符的嵌套:能不用就不用。

九、结果化编程思想
告诉我们任何功能的程序都可以由 顺序结构、选择结构和循环结构三种最基本的程序控制结构来构成。不使用goto,目的:提高程序的易读性,提高开发效率。

十、三种节本的程序控制结构:
顺序结构:按照代码书写的顺序来顺序执行。
选择结构:按照某个条件是否成立来选择执行不同的代码块。也叫分支结构。
if 语句
switch语句
循环结构:重复执行某些功能的代码。
while循环
do。。。while循环语句
for循环

十一、选择结构的if语句:
1)if语句的一半形式:
单分支
if(a >0 ){
// a是正数
}
双分支
if(a > 0){

} else{
// a 不是一个正数
}
多分支
if(a > 0){
// a 正数
} else if(a < 0){
// a负数
}else{
// a = 0
}
if 语句只能选择其中的一条逻辑分支,每个分支之间时互斥的。
2)if语句的嵌套
if(a > 0){

}else{// a <= 0
if( a < 0){
// a 负数
}else{
// a = 0
}
}
3)if语句使用的注意事项:
c语言的逻辑判断:在对一个结果进行逻辑判断的时候,认为0 代表假,非0代表真。
c语言进行逻辑结果返回:0 代表假,1代表真。
if(表达式),可以放任何的表达式。if(1) //永真
if(a > 0) printf("---"); // if语句后面如果没有{},那么if的作用域就只有它后面的那一行代码。
if(a > 0) int b = 9; // 编译器会报错。如果想通过编译,加上{}
if(a > 0) {int b = 9;}// 编译通过。
if(a > 0){
int b = 9;
}
printf("b= %d",b);// 编译不通过,报错:没有声明的变量标示符b。

十二、switch语句
switch一般格式:
switch (表达式1){
case 表达式2:
// 功能代码;
break;
default:
break;
}
执行流程:
先计算表达式1的值,然后比较表达式1的值和表达式2的值是否相等,如果相等,进入该条case 语句,并且向下顺序执行代码,直到遇到break,结束switch语句。

switch语句注意点:
1)swtich语句后面的表达式1,允许的值:int类型的变量,常量或着结果为int类型的表达式;可以向上转型为int类型的变量,常量或表达式。(char ,short,枚举类型)2)case语句可以任意多条;3)case语句后面可以加{},也可以不加,执行效果一样。4)default位置:可以在switch{}内部的任意位置。5)break语句可以省略。
case语句的注意点:1)case 语句的格式,空格和冒号都不可省略。2)case语句后面表达式2的值:整型常量:int类型。也可以是一个常量表达式(3+3),其他类型的常量(可以向上转型为int类型的)。(char ,short,枚举)。3)case 语句的作用域:直到遇到break 关键字。4)case 后面不能在第一行代码定义一个变量,编译不通过;如果说非要在case语句的代码块中定义一个变量,1加上{};2把变量的定义,不要放在第一行。switch(表达式){
case 1:int a = 1;// 放在第一行定义,编译不通过,printf("");int b = 2;break;
case 2:printf("b = %d",b );
break;default:

break;

分区 第四天 的第 2 页

}

break;

5)编译器的bug,使用了前面没有满足条件的分支中定义的变量,但是没有使用其中定义的变量值,而是一个垃圾值。
switch(2){case 1:
printf("");int b = 2;break;
case 2:printf("b = %d",b );
break;default:
break;
}6)default语句如果在最后,可以省略break;如果不在最后,break不能随变省略,否则会造成逻辑错误。
8、if和siwtch语句的选择结论:
if的判断比较灵活,如果判断范围的话用if简单。
switch只能判断值是否相等,但是它能够将多条逻辑分支通过case语句的穿透执行来合并执行。9、if和switch的转换
通过整除的方式,将分数范围转换成数值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,548评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,497评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,990评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,618评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,618评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,246评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,819评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,725评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,268评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,356评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,488评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,181评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,862评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,331评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,445评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,897评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,500评论 2 359

推荐阅读更多精彩内容