【学习ios之路:C语言】总结整理:学好Object-C---C语言必备知识点

一.基本数据类型.常量.变量.运算符

1.数据类型 int. short.char.long.float.double.

2.常量的分类.(1).整型常量 (2)浮点型常量 (3)字符常量 (4)字符串常量.

3.常量的特性:常量存储在常量区,常量区的内容不可被更改.

4.变量的定义与本质.数据类型 变量名 = 初值 . 本质变量就是一个容器.

5.变量名的命名规范

6.运算符.

(1)赋值运算符 =

(2)算数运算符 +  -  *  /  %  ++  --

(3)复合运算符  +=  -+   *=   /=   %=

(4)关系运算符  >  <  >=  <=  !=   ==

(5)逻辑运算符  &&  ||  !    注 :逻辑与与逻辑或的短路现象

(6)条件运算符  a > b ? a : b;

(7)位运算符 &  |   ^   ~   <<   >>

7.表达式(有无返回值) ,最简单表达式:常量.

8.基本的输入输出函数  %d  %o  %0x(%x)  %ld  %lu  %c  %f  %s  %p

二.分支结构

1.BOOL

2.if语句. (1) if  (2) if ... else  (3) if ... else if ..... else

3.switch...case

(1)case  + 整型常量表达式

(2) 如果要在case分支中定义变量要加大括号{}

(3)default

(4)break : 跳出分支

三.循环结构

1.循环必备四个条件:

(1)循环变量初始化

(2)循环条件

(3)循环增量

(4)循环体

执行流程: (1) --- (2) --- (4) --- (3) --- (2) --- (4) --- (3) --------- (2)

2.for循环 ---- 循环嵌套

3.while循环 与 do......while循环

4.for 与 while, do...while的区别

(1) for循环 :多用于知道循环次数,既循环次数确定的情况下.

(2)while循环:do..while 循环: 多用于不确定循环次数的需求.

(3)for循环可以转化为while和dowhile循环,但是不能反过来.

5.while和do ..while区别:

(1)while:先判断循环条件,在执行循环体.

(2)do..while :先执行一次循环体,然后在判断,即使循环条件不满足,循环体也会执行一次.

6.break与continue的区别

7.如何取出一个数各个位上的数. % 与 / 的应用

四.数组

1.数组的作用

2.数组的定义.数组的强大是和循环分不开的.

3.如何取数组元素? 下标

4.遍历

5.冒泡排序 升序降序排序

(1)外层循环控制趟数,外层减一, 可减可不减,-1目的是提供程序的执行效率.

(2)内层循环控制比较次数. 内层减一,必须减,防止比较时越界.

(3)内层 - i ,可以不减, -i目的是缩小无序区的范围,提高程序的执行效率.

6.字符数组 - 字符串

7.字符串处理函数

五.数组高级

1.二维数组的本质 --- 数组里面套数组

2.多维数组简单应用

六.结构体(VIP)

1.结构体存在的意义.

(1)自定义的数据类型,可以用来定义变量

(2)结构体和数组一样,都是大容器,可以存储多个变量,但是结构体比数组灵活,可以存储不同类型的数据

2.结构体的定义.

3.如何通过结构体变量访问结构体成员.

4.typedef 类型重定义

5.结构体的嵌套

6.比较局部获取整体的思想.

7.结构体按照成员进行排序

七.函数

1.函数的作用:

实现代码的模块化管理.把复杂的逻辑进行拆分,而主函数只起到宏观调控的作用即可.

2.函数的定义. 返回值类型 函数名(形参列表){函数体(即函数的实现内容)}; 四种形式.

3.函数的分文件形式.(.h文件存放函数的生命, .m文件存放函数的实现.)

4.(1)返回值类型 (2)形参(3)实参(4)函数声明,函数实现,函数体,函数名

(1)实参:函数调用时给定的参数叫做实参,是一个唯一确定的数据.

(2)形参:形式上的参数,在函数定义时,给定的参数叫做形参,一个一个的变量,存储的数据在函数调用之前未知.

(3)实参向行参传递的过程是一个拷贝的过程.

5. return关键字的作用.

(1) 将函数的返回值给主掉函数.

(2) 结束当前函数的执行.

6.函数调用: 函数名 + 实参列表

7.函数的嵌套调用

函数与函数之间可以嵌套调用(也就是在一个函数内部可以调用另外一个函数).但不能嵌套定义(不能在一个函数内部定义另外一个函数).

8.递归简单应用.

9.static 作用.

八.进制转换(理解)

1.进制转换

2.位运算符

3.栈区的内存分配原则(VIP).

4.如何看程序的执行,学会打断点.

九.指针

1.指针的作用.

2.指针的定义.

3.指针的赋值.

4.指针重指向.

十.指针高级

1.传值和传址

(1).传值.传递的时变量中的内容.函数内部改变不会影响外部的变量.

(2).传地址.传递的是变量的地址,函数内部改变会影响外部的变量.

2.指针与结构体的关系.

3.如何通过结构体指针访问结构体成员.

4.const的作用.

const 安全性 修饰的变量是readonly,只能读取数据,不能修改.


<span style="font-size:14px;">    /**
     * p 是指针变量,存储p地址
     * *p 是指向变量指向的空间,也就是变量a的空间
     *  面试题:请问const修饰的谁不可变?
     * 1.const int *p = &a;//修饰*p,即*p不可变,不能通过指针变量p修改指向空间的内容,但是指针变量p可以重新赋值,重指向.
     *  测试1: *p = 10; p = &b;
     * 2.int const *p = &a;//修饰*p,即*p不可变,不能通过指针变量p修改指向空间的内容,但是指针变量p可以重新赋值,重指向.
     *  测试2: *p = 10; p = &b;
     * 3.int * const p = &a;//修饰p,即p不可变,能通过指针变量p修改指向空间的内容,但是指针变量p不可以重新赋值,不能重指向.
     *  测试3: *p = 30; p =&a;
     * 4.const int * const p = &a;//修饰*p以及p ,都不可以改变,不能通过指针变量p修改指向空间的内容,指针变量p也不可以重新赋值,不能重指向.
     *  测试4: *p = 10; p =&a;
     *
     */</span>

十一.动态内存分配

1.存储区的划分.堆区

2.在堆区开辟空间, malloc ,calloc ,realloc, 回收空间.

3.标记删除.

4.宏. 无参宏 和 有参宏 宏的注意事项(vip)

十二.函数指针(vvip)

1.函数指针的定义

    <span style="font-size:14px;"> /**
     *   函数指针:指向一个函数的指针变量.'
     *   函数的类型:返回值类型+参数
     *   函数指针变量类型: int (*)(int x, int y)
     *   指针变量的名字:max
     *   初始值:NULL
     *   max 可以指向一个返回值是int型并且有两个int型的参数的函数.
     */</span>

2.如何通过函数指针调用函数

3.回调函数

4.枚举 enum

5.条件编译.#include 与 #import的区别

#import 相比 #include 能够防止重复导入,引起交叉编译.

时间: 2024-11-05 12:09:26

【学习ios之路:C语言】总结整理:学好Object-C---C语言必备知识点的相关文章

【学习ios之路:C语言】C语言中容易出错的试题整理.

注:此类题都是比较基础的试题,但是都容易让人忽视,或者平常不在意的. 1.表达式3.6-5/2+1.2+5%2的值是(D). A. 4.3  B. 4.8  C.3.3  D. 3.8 2.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为:(D) A. float   B. char  C. int  D. double 3.以下关于运算符优先顺序的描述中正确的是:(C) A.关系运算符<算术运算符<赋值运算符<逻辑与运算符  

【学习ios之路:C语言】指针

指针 1.指针定义,即简单用法. <span style="font-size:14px;"> //指针变量:专门用来存储地址的变量. int *p = NULL;//NULL == 0 /** * 变量定义时: * (int *):指针类型 * p: 变量名 NULL:初始值. * NULL(指向了一个无效的区域) * *的作用: 告诉编译器,后面变量是指针变量,用来存储地址. * int作用: 1.当通过指针变量取数据时,一次性读取几个字节的数据. 2.当指针变量+1时

【学习ios之路:C语言】循环方面试题

1.打印出如下所示图形  : * *  * * * * 代码如下: for (int i = 0; i < 3; i++) { for (int j = 2; j > i; j--) { printf(" "); } for (int k = 0; k < i + 1; k++) { printf(" *"); } printf("\n"); } 2. 打印出如下图形: * *   * *  *  * *   * * 代码如下:

【学习ios之路:C语言】一维数组,数组排序,字符数组

1.数组 数组,快速定义多个变量. 数组定义: 数据类型 数组名[数组元素的个数] = {值1, 值2, 值 3}; 数组所占存储空间大小 = 数组元素个数 * 每个元素所占的存储空间大小. %lu  unsigned long 无符号的长整型. 无符号 >=0 sizeof 存储大小值  //用来计算一个变量,类型,以及数组所占存储空间的大小. int a[5] = { 2, 7, 4, 3, 6 };  printf("%lu\n", sizeof(arr)); //5 in

【学习ios之路:C语言】②高级指针应用

1.指针与字符数组 <span style="font-size:14px;"> /** 定义字符串的2种方式 * 1.利用数组 * char name[] = "itcast" * *特点:字符串里面的字符是可以修改的 * *使用场合:字符串的内容需要经常修改. * 2.利用指针 * char *name = "itcast"; * *特点:字符串其实是一个常量字符串,里面的字符是不能修改的; * *使用场合:字符串内容不需要修改,

【学习ios之路:C语言】存储区内存划分

一. 内存存储区的划分: 1.栈区:栈区主要存放函数内部定义的变量,数组.函数调用时,开辟空间,函数执行完毕,回收空间,空间的开辟与回收有系统管理. 2.堆区:堆区最大的特点:空间的开辟与释放有开发人员手动管理. 3.全局区静态区:主要存放函数外部定义的全局变量以及静态变量,空间一旦开辟,就不会回收.直到应用程序执行结束. 4.常量区:存储常量.1.整形常量.2.浮点型常量.3,字符串常量.4.字符串常量. 5.代码区:存放程序编译之后生成的cpu指令. 二.malloc,在堆区开辟空间. //

【学习ios之路:C语言】进制.位运算.栈

1.进制转换 1).10进制转为N进制.方法:(连除倒取余). 2).N进制转换为10进制.方法:(按权求和法):当前位上的数乘以基数的位数减1次方. 例: 0b1111 ---- 1* 2^3 + 1*2^2 +1 * 2^1 +1*2^0 = 15; 038 ----- 3*16^1 +8*16^0 = 56; 3).N进制转换N进制. 例如: 二进制 --- 16进制 1010   0011  ----  A 3 1111   0011  ----  F 3 int a = 010;//8

【学习ios之路:C语言】小程序:实现类似ATM取款机功能.

小程序:模拟ATM机取款的过程 1).定义两个能保存5个整形数的数组,一个用于保存5个人的卡号,一个用于保存对应卡号的密码 2).判断输入的卡号是否在数组中. 3).如果在数组中就让输入密码,判断是否和卡号对应的密码匹配. 4).判断密码,24小时内只允许输入3次错误的密码.输入错误应该提示还剩下的输入次数,3次都输入错误提示24小时内不允许操作该卡. 5).密码正确就让用户对该账户进行相应的操作. 6).注意取款的限制. 7).述功能对于一个ATM机是循环的过程,也就是说每个客户都会按照上面的

【学习ios之路:C语言】函数及递归的简单应用

函数定义: 返回值类型 函数名(形参列表){函数体(函数的实现内容)}; 函数定义的四种形式: //函数定义第一种形式: 无参数, 无返回值 void byMilk() { //如果没有参数,小括号必不可少. printf("没钱\n"); } //函数名的命名规范:由多个英文单词组成,除了第一个单词的首字母小写,其余单词首字母大写. //函数定义第二种形式,有返回值,无参数 float salary() { printf("同志们辛苦了\n"); return 0