lijifeng

导航

黑马程序员——C语言基础 char字符 数组

                                                                                   (以下内容是对黑马苹果入学视频的个人知识点总结)

 (一)char类型

1)存储细节

ASCII单字节表(双字节GBK\GB2312\GB18030\Unicode)

2)可以当整数使用

在-128~127范围内,可以当做整数来用

3)常见的错误

①char c = A;

②char c = "A";

③char c = 'ABCD';

④char c = '男'; 

 1 #include <stdio.h>
 2 /*
 3  1.说出下面程序的输出结构
 4  int i = 67 + '4';
 5  char c = 'c' - 10;
 6  
 7  printf("%d - %c\n", i, i);
 8  printf("%d - %c\n", c, c);
 9  
10  
11  2.写一个函数,将小写字母转为大写
12  
13  */
14 
15 char upper(char c)
16 {
17     // 如果是小写字母,就转成大写
18     /*
19     if (c>='a' && c<='z') { // ['a', 'z']
20         return c - ('a'-'A');
21     } else {// 如果不是小写字母,返回字母本身
22         return c;
23     }*/
24     
25     // 如果是小写字母,就转成大写
26     if (c>='a' && c<='z') { // ['a', 'z']
27         return c - ('a'-'A');
28     }
29     // 如果不是小写字母,返回字母本身
30     return c;
31 }
32 
33 int main()
34 {
35     char cc = upper('f');
36     
37     printf("%c\n", cc);
38     return 0;
39 }

4)转义字符

①\n 将当前位置移到下一行开头(回车换行)

②\t  跳到下一个TAB位置

③\\ 代表一个反斜线字符

④\" 代表一个双引号字符

⑤\0 代表空字符

(二)数组

1)数组的基本概念

1>数组,从字面上看,就是一组数据的意思,数组就是用来存储一组数据的

2>只能存放一种类型的数据,比如int类型的数组、float类型的数组,里面存放的数据称为“元素”

2)数组的定义

1>声明数组的类型

2>声明数组的元素个数

3>格式 

元素类型 数组名[元素个数];

比如:int ages[3];

4>简单的使用和初始化

数组可以存放数据,可以作为函数参数,数组元素也可以作为函数参数

数组有多种初始化方式

①int ages[5] = {10 , 11, 12, 67, 56};

②int ages[5] = {10, 11};

③int ages[5] = {[3] = 10, [4] = 11};

④int ages[] = {10, 11, 14};当然只能在定义数组的同时进行初始化

 1 #include <stdio.h>
 2 
 3 // 数组作为函数参数,可以省略元素个数
 4 // 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组
 5 
 6 void change(int array[])
 7 {
 8     //printf("array==%p\n", array);
 9     
10     array[0] = 100;
11 }
12 
13 void change2(int n)
14 {
15     n = 100;
16 }
17 
18 int main()
19 {
20     int ages[6] = {10, 11, 10, 11, 10, 11};
21     
22     //printf("ages==%p\n", ages);
23     
24     change(ages);
25     
26     //change2(ages[0]);
27     
28     printf("%d\n", ages[0]);
29     return 0;
30 }

 

5>内存分析

数组内的存储空间大小和数组的类型以及存放的数据个数有关。内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的。

二维数组和数组的内存都一样,一下是一个二维数组的存储形式

/*

设计一个函数,找出整型数组元素的最大值
*/

#include <stdio.h>

int maxOfArray(int array[], int length)
{
    // 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节
    
    //int size = sizeof(array);
    //printf("array=%d\n", size);
    
    //sizeof(array);
    
    // 1.定义一个变量存储最大值(默认就是首元素)
    int max = array[0];
    
    // 2.遍历所有元素,找出最大值
    for (int i = 1; i<length; i++)
    {
        // 如果当前元素大于max,就用当前元素覆盖max
        if (array[i] > max)
        {
            max = array[i];
        }
    }
    
    return max;
}

int main()
{
    int ages[] = {11, 90, 67, 150, 78, 60, 70, 89, 100};
    
    int ages2[] = {11, 90, 67, 150, 78, 60, 70, 89, 100};
    
    //int size = sizeof(ages);
    
    //printf("ages=%d\n", size);
    int max = maxOfArray(ages, sizeof(ages)/sizeof(int));
    
    printf("%d\n", max);
    return 0;
}

上面的程序是一个数组的遍历以及找出最大值

 

 

posted on 2015-03-23 18:23  lijifeng  阅读(732)  评论(0编辑  收藏  举报