• c语言学习总结(4)数组学习总结


    1、数组不能相互赋值,如:a[5]=b[5]

      数组不能作为函数的返回值如:void test(int a[5]) {...}

    2、如果数组名放在=号的右边,那么这个数组会自动转换成数组首元素的指针。这样就可以解释上面为什么a[5]=b[5]是错误的赋值方式了,因为右边的b[5]自动转换成了指针,不能将指针赋值给数组。

    比较:  printf(%s ,str);和scaf(%s,&str);

    前一个自动转换成指针进行传递,而第二个是输入的函数表达式需要使用&符号表示输入传递给一个指针类型。

    3、看这样的调用:int array[5] = {};foo(array);

      这里的使用方法不会报错,但是传递的不是一个数组类型的参数,而传递的是一个指针型的参数。

    4、二维数组的存储实际上是连续存储的,比如:int a[3][2]={1,2,3,4,5};

    5、Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables,and I won't usually need your flowcharts; they'll be obvious.

      书写代码时要注意维护成本,选择正确的数据结构来组织信息。如:

    #include <stdio.h>
    void print_day(int day)
    {
            char days[8][10] = { "", "Monday",

                  "Tuesday", "Wednesday",

                  "Thursday","Friday",
                  "Saturday", "Sunday" };
            if (day < 1 || day > 7)
                    printf("Illegal day number! ");
            printf("%s ", days[day]);
    }
    int main(void)
    {
            print_day(2);

    }

    如果用switch语句或者if语句来写这个,想想看是多么的糟糕。
     

  • 相关阅读:
    如何导入Support v7包?以及使用Support V7下的RecyclerView
    无言是一种教育
    自己的归宿在哪里?
    如是我愿
    【九度OJ】题目1111:单词替换
    【九度OJ】题目1054:字符串内排序
    【九度OJ】题目1061:成绩排序
    【九度OJ】题目1202:排序
    Python项目:扇贝网小组查卡助手
    Ubuntu搭建Ruby on Rails环境
  • 原文地址:https://www.cnblogs.com/hxu7373/p/3474527.html
Copyright © 2020-2023  润新知