美文网首页
2020-03-08

2020-03-08

作者: LH大牛 | 来源:发表于2020-03-10 09:09 被阅读0次

    一维数组


    一维数组

    1.打印地址用%p;

    2.数组的地址是连续的;

     3.一个int是4位,4*6=24;

    4.对于数组a,直接取地址,为首元素地址;

    5.不能对数组重新赋值,例如a=a+1,会报错;

    6.C语言数组越界,编译器不会做越界检查,需要注意逻辑;

    7.数组a[3]={1,2,3,4},报错;,如果缺少补0,最常用的是a[ ];

    打印数组的一些基本知识

    问题:a[ ]时如何计算数组长度,利用sizeof()函数; 例如:a=sizeof(a)/sizeof(int);

    数组数据溢出,产生警告 冒泡排序

    笔记:1.由小向大排列,故而 i 从小开始;

               2.外圈for循环为比较次数,内圈for循环为比较的数;

              3.内圈for循环,必须从j=i开始(i+1也可以),因为若从j=0开始,已经赋值的最小值仍来比较,所以只会输出最小值;

             4.进行大小排列,必然要引入一个新变量,作为中间变量;

    遗留:1.用其他循环的算法完成;

    二维数组


    二维数组赋值报错

    1.二维数组初始化时,只有一维数组的维度可以不用填写,二维数组的维度必须填写;

    2.不填写报错如上;

    3.二维数组的打印必须用for循环实现

    4.二维数组的初始化必须注意格式;

    二维数组的字节数

    打印杨辉三角


    分析:1.将10*10全为1打印出来

               2.只打印10*10下半部

               3.调整复制数据;

    第一步

    第二步 第三步

    杨辉三角思考:

    1.在第三步,对于i的重新赋值和装填时,内层for循环,必须强行使得  j<=i,因为j=0时,数组无-1,会产生随机数据,导致结果错误;


    思考题:3×4矩阵,要求输出其中最大值。以及他的行号和列号

    1.比较大小时,因为遍历,所以应该创造出独有的行和列变量;

    2.在比较大小程序中,坚决不能对原数组的维度进行重新赋值,负责会陷入思维误区;

    2维数组求最大数

    字符数组

    有\0对比-字符串数组

    笔记:

    1.c语言没有字符串常量,都是用字符串数组进行定义;

    2.要打印字符串数组,最好的办法是利用for循环进行遍历完成;

    3.用 printf 或者 putchar 进行输出,必须添加 \0 结束符号,不然结果如同上图1所示,未加限制的数组会找到 /0 才会截至;

    段错误

    段错误原因:格式输出函数 printf 中%s输出的是字符串。而使用for循环进行遍历,输出的是单个字符,所以输出格式不匹配,导致段错误;

    笔记:数组声明必须带维度或者元素。char I[].这样的声明是错误的;


    数组逆序逆序输出

    数组下标的作用很大;
    数组下标逆序用不同方法实现:

    相关文章

      网友评论

          本文标题:2020-03-08

          本文链接:https://www.haomeiwen.com/subject/oifddhtx.html