我是黑马-----ios开发之C语言基础

C语言在学习中的重难点:

1)运算符:自增,自减。

2)进制:各种进制转换、原码、反码、补码。

3)数组:一维数组,二维数组,多维数组。

4)循环:多重循环嵌套、查找、排序。

5)函数:普通函数调用、递归函数的调用。

6)指针:一级指针、多级指针、数组指针,指针和数组、函数、结构体、之间的关系、

7)内存管理:C语言的内存管理问题、内存泄露、野指针。

8)有参宏及条件编译。

9)多文件开发

前期学习C语言的关键输入输出函数:printf()和scanf()

a++与++a的区别:

运算的顺序就是看“++”在什么位置。如果++在前,就是先加1再计算,

如果是“++”在后则是先计算,再加1。

练习:

1 int b; int a = 5;
2 b = (++a) + (a++);
3 printf("b=%d, a=%d\n", b, a);

答案:

1 /*
2 答案:
3 本题考的是“++a”和“a++”的区别
4 ++a是先加算  然后再参与计算  此处:(++a)= 6
5 a++先计算后加算,由于刚才刚执行了“++a”所以此时 a = 6,(a++)=6
6 所以 b = (++a)+(a++)
7     b =    6   +  6       b等于12
8 a经过2次++运算此时的值是7
9 */

switch case穿透问题:

case一般要配合break关键字使用、如果不加case则进入case后其下面所有的case都会被计算机运行。

穿透案例:

 1 switch(2){
 2     case 1:
 3 printf(“1”);
 4     case 2:
 5 printf(“2”);
 6     case 3:
 7 printf(“3”);
 8     case 4:
 9 printf(“4”);
10     case 5:
11 printf(“5”);
12     default:
13     return 0;
14 }

输出结果:

//printf("2");
//printf("3");
//printf("4");
//printf("5");
//以上代码都会执行!
结果:2345

不穿透:

 1 switch(2){
 2     case 1:
 3     printf(“1”);
 4     break;
 5 case 2:
 6     printf(“2”);
 7     break;
 8 case 3:
 9     printf(“3”);
10     break;
11 case 4:
12     printf(“4”);
13     break;
14 case 5:
15     printf(“5”);
16     break;
17 default:
18     return 0;
19 }

输出结果:

1 //printf("2"); 2 结果:2

C语言各中循环的循环条件:

1 for(;true;){}
2 while(true)
3 do ....while(true) //无论如何也会循环一次。

只有当括号内为“true”时才会进入循环。所有语言都一样。

for循环应用之冒泡排序:

有两种排序方式:1、大大数下沉  2、小数上浮  区别只仅仅是for循环里的“<” “>”的不同。

代码实现:

 1 #include<stdio.h>
 2 void maopao(int arr[],int len){
 3   int temp;
 4   for(int j = 0;j<len - 1 - i;j++){
 5      if (arr[i]>arr[j+1])  {
 6          temp = arr[i];
 7          arr[j] = arr[j+1];
 8          arr[j+1] = temp;
 9      }
10   }
11 }

for循环应用之选择排序:

代码实现:

 1 #include<stdio.h>
 2 void selectSor(int arr[],int len){
 3     int temp;
 4     for(int i =0;i<len - 1;i++){
 5         for(int j = i + 1;j<len;j++){
 6             if(arr[i] > arr[j]){
 7                 temp = arr[i];
 8                 arr[i] = arr[j];
 9                 arr[j] = temp;
10             }
11         }
12     }
13 }
时间: 2024-11-08 22:00:51

我是黑马-----ios开发之C语言基础的相关文章

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

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程   二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行

iOS开发之c语言基础Lesson-10 动态内存管理 上课笔记 与 试题练习

//函数声明 int max(int a, int b); char * getString(); int main(int argc, const char * argv[]) { //////////////////Lesson 10 动态内存管理 课堂笔记 和 练习 ///////复习上周所学 /////////常量和变量的区别: //常量中的内容不能被修改,只能访问: //变量中存储的数据时可以随时修改的. // //const 关键字的作用: 修饰变量不可改变.当做常量使用 //  c

iOS开发之c语言基础Lesson-08 指针 上课笔记 与 试题练习

1 ////////////////Lesson 08 指针 课堂笔记 与练习///////////// 2 3 //指针:本质是一个指针变量,只不过该变量用来存储地址. 4 //地址:内存单元的编号,也是一个数,只不过是以0x开头的十六进制数. 5 6 // int a = 10; 7 // int *p = &a; //定义一个指针变量,将a的地址给指针变量p:p指向a 8 // a = 20; //直接访问 9 // printf("%d ", *p); 10 // *p

iOS开发之c语言基础 扩展知识点 及 企业面试题

1 // 2 // main.m 3 // LessonScale 4 // 6 // Copyright (c) 2015年 Ashen. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 //当程序编译时,只会编译.m文件,不会编译.h文件 11 //#import 比 #include ,要略胜一筹,等通过#import多次导入头文件时,只会将内容拷贝一次 12 #import "Header.

iOS开发之c语言基础Lesson-11 函数指针 上课笔记 与 试题练习

main.m 文件 9 #import <Foundation/Foundation.h> 10 #import "Pointer.h" 11 ////////////////Lesson 11 函数指针 课堂笔记 与 习题练习//////////// 12 13 14 //函数指针:指向函数的指针叫做函数指针,用来存储函数的地址 15 //函数名代表函数的入口地址 16 17 18 //回调函数; 函数指针变量,存储对应的函数的地址 19 //给函数指针类型,取一个新的名

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

OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应用程序. 拓展名:c语言-.c  OC语言.-m  兼容C++.-mm 注:其实c语言和oc甚至任何一门语言都只是我们为了实现一些功能,达到一些效果而采用的工具,抛开语法的差别外,我想最重要的应该是在解决问题的时候考虑的角度和方法不一样而已,然而这也构成了学习一门语言的重要性. 二.语法预览 (一)

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

OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警

李洪强iOS开发之C语言重难点

  C语言学习的重难点 写程序的三个境界: 照抄的境界,翻译的境界,创新的境界 1  伪代码: 描述C语言的编程范式 范式: 规范的一种表示 对于C的范式学会的话,C, C++ Java 都会了 2 运算符的自曾与自减 3 进制转换与数据在内存中的表示 4 循环嵌套 5 多维数组 6 函数递归 7 指针-是一把双刃剑 8 内存管理 9 待条件的宏

李洪强iOS开发之OC语言BLOCK和协议

OC语言BLOCK和协议 一.BOLCK (一)简介 BLOCK是什么? 苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行. BOLCK和函数的相似性: (1)可以保存代码(2)有返回值(3)有形参(4)调用方式一样. 标识符 ^ (二)基本使用 (1)定义BLOCK变量 Int (^SumBlock)(int,int);//有参数,返回值类型为int Void (^MyBlock)()://无参数,返回值类型为空 (2)利用block封装代