ios开发之C语言基础

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

1)运算符:自增,自减。
2)进制:各种进制转换、原码、反码、补码。
3)数组:一维数组,二维数组,多维数组。
4)循环:多重循环嵌套、查找、排序。
5)函数:普通函数调用、递归函数的调用。
6)指针:一级指针、多级指针、数组指针,指针和数组、函数、结构体、之间的关系、
7)内存管理:C语言的内存管理问题、内存泄露、野指针。
8)有参宏及条件编译。
9)多文件开发
 
前期学习C语言的关键输入输出函数:printf()和scanf()
 
 
 
 C语言变量的作用域:
1)局部变量:
  在函数内部定义,作用域仅在大括号之内,程序执行到大括号结束,变量生命周期结束。
 
 
1 include<stdio.h>
2 int main ()
3  {
4      int a;
5      return 0;
6 }

2)全局变量:

  全局变量在函数外部定义,作用于程序开始到程序结束。

  

 1 #include<stdio.h>
 2 int a ;
 3 
 4 int main ()
 5  {
 6         printf("%d" , a ) ;  
 7         return 0;
 8 }
 9 
10 void test ()
11 {
12       printf("%d" , a) ;
13 }

  

 
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 switch2){
 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 511 printf(“5”);
12     default13     return 014 }
输出结果:
//printf("2");
//printf("3");
//printf("4");
//printf("5");
//以上代码都会执行!
结果:2345
 
不穿透:
 1 switch2){
 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     break14 case 5:
15     printf(“5”);
16     break;
17 default:
18     return 0;
19 }
输出结果:
 1 //printf("2"); 2 结果:2 
 
C语言各中循环的循环条件:
1 for(;true;){}
2 whiletrue3 do ....whiletrue//无论如何也会循环一次。
只有当括号内为“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 }

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2015-07-01 22:18  预估计  阅读(237)  评论(0编辑  收藏  举报