zoukankan      html  css  js  c++  java
  • C++学习(十四)(C语言部分)之 数组


    上期回顾:
    三大循环 for while do while (循环体至少会执行一次)
    四大跳转 goto continue(提前跳出当前循环 进入下一个循环) break(跳出本次循环) return(跳出当前函数)
    exit(在任意地方跳出程序)


    数组:
    ---->作用 同时定义多个相同类型的数据
    int arr[4]; //定义4个int 定义一个数组 arr是数组名

    [] 下标运算符
    定义格式 类型 数组名[数组大小];//定义数组的格式
    赋初值:
    定义的时候赋值 {} int arr[4]={1,2,3,4};//赋的值少于元素个数 多余的元素默认用0赋值
    定义之后再赋值 arr[0]=1;

     举个栗子

    第31行是直接在定义的时候就赋值

    第33-37行是在定义之后再进行赋值

     

    上图是用循环对数组进行赋值


    手动输入数组的值

    数组名[下标] //其中一个元素 下标可以是变量
    int arr[4];//下标从0开始 0-3(下标不超过这个范围都可以)

    错误的写法:
    int arr[4];
    arr[4]={1,23,4};

    int arr[]={1,2,3,4,5};//这种定义是正确的 可以给初值 不给大小

    arr--->数组名 街道
    [下标]---> 门牌号

    注意:定义的时候数组大小不能是变量 必须是整型

    数组大小 --->数组能存放多少个元素 定义数组的时候给定大小
    数组下标 --->元素的下标 从0开始 使用数组中元素的时候使用

    int crr[10000000];//会报错 数组太大 栈溢出

     

    字符数组
    格式:
    char str[10];//字符数组
    特殊用法 字符串 "1234" 双引号 字符串 中文 "你好世界"
    字符串用 '' 作为字符串结尾 一般是默认加上的 看不见

    ----->字符串一般用字符数组存放

    举个栗子

    输入时 不能有制表符

     

     

    ascii----->char 数字---->字符
    中文--->两个字符---->对应一个汉字
    没赋值 都是无效值---->乱码

    //一个中文占两个字节
    //赋默认值0 在定义的时候初始化才会赋值0
    //0-7 8'' 字符串结尾 后面的值 无效值
    //断点 --->添加监视

     

    #include<string.h>//用于字符串的操作的函数

    求数组大小 sizeof
    获取数组 gets(数组名称)
    输出字符串 puts(数组名称)
    求字符串长度 strlen()
    比较两字符串 strcmp(字符串1,字符串2);  字符串不能用等号比较

    字符串拷贝函数  strcpy(字符串1,字符串2);第二个字符串拷贝到第一个位置 覆盖原来的内容

    字符串连接函数   strcat(字符串1,字符串2);

    栗子

     

     

     

     测试代码如下:

     

      1 /*
      2 上期回顾:
      3 三大循环  for  while  do while (循环体至少会执行一次)
      4 四大跳转  goto  continue(提前跳出当前循环 进入下一个循环)  break(跳出本次循环) return(跳出当前函数) 
      5 exit(在任意地方跳出程序)
      6 
      7 
      8 数组:
      9   ---->作用 同时定义多个相同类型的数据 必须是整型 不能是小数个 必须是常量
     10   int arr[4];  //定义4个int  定义一个数组  arr是数组名
     11   
     12   [] 下标运算符
     13   定义格式  类型 数组名[数组大小];//定义数组的格式
     14   赋初值:
     15   定义的时候赋值 {}  int arr[4]={1,2,3,4};//赋的值少于元素个数 多余的元素默认用0赋值
     16   定义之后再赋值 arr[0]=1;
     17 
     18   数组名[下标] //其中一个元素  下标可以是变量
     19   int arr[4];//下标从0开始 0-3(下标不超过这个范围都可以)
     20   
     21   错误的写法:
     22   int arr[4];
     23   arr[4]={1,23,4};
     24 
     25   int arr[]={1,2,3,4,5};//这种定义是正确的 可以给初值 不给大小
     26 
     27   arr--->数组名 街道
     28   [下标]---> 门牌号
     29 
     30   注意:定义的时候数组大小不能是变量 必须是整型
     31 
     32    数组大小 --->数组能存放多少个元素 定义数组的时候给定大小
     33    数组下标 --->元素的下标 从0开始  使用数组中元素的时候使用
     34 
     35    int crr[10000000];//会报错 数组太大 栈溢出
     36 
     37    
     38    字符数组
     39    格式:
     40    char str[10];//字符数组
     41    特殊用法  字符串 "1234" 双引号 字符串 中文 "你好世界"
     42    字符串用 '' 作为字符串结尾   一般是默认加上的 看不见
     43 
     44    ----->字符串一般用字符数组存放
     45 
     46    ascii----->char 数字---->字符
     47    中文--->两个字符---->对应一个汉字
     48    没赋值 都是无效值---->乱码
     49 
     50    求数组大小  sizeof
     51    获取数组   gets(数组名称)   
     52    输出字符串  puts(数组名称)
     53    求字符串长度  strlen()
     54    比较两字符串  strcmp(字符串1,字符串2);  字符串不能用等号比较
     55    字符串拷贝函数  strcpy(字符串1,字符串2);
     56    字符串连接函数   strcat(字符串1,字符串2);
     57    
     58    
     59    */
     60 
     61 
     62 #include<stdio.h>
     63 #include<stdlib.h>
     64 #include<string.h>//用于字符串的操作的函数
     65 //mciSendString(mystring, 0, 0, 0);
     66 #include<windows.h>//graphics.h
     67 #include<mmsystem.h>
     68 #pragma comment(lib,"winmm.lib")
     69 int main()
     70 {
     71 #if 0
     72     //举个栗子
     73     int arr[4];//= {1,2,3,4};//arr是数组名字 可以随意取 赋值时元素用逗号隔开
     74 
     75     //printf("%d",arr[3]);
     76     //arr[0] = 1;
     77     //arr[1] = 2;
     78     //arr[2] = 3;
     79     //arr[3] = 4;//数组下标规定是从0开始的不能大于元素个数  (越界)
     80 
     81     for (int i = 0; i < 4; i++)
     82     {
     83         //arr[i] = i;
     84         printf("请输入arr[%d]的值",i);
     85         scanf_s("%d",&arr[i]);
     86         printf("%d	",arr[i]);
     87     }
     88 
     89 #endif
     90 #if 0
     91     //输入输出
     92     char arr[10];
     93     scanf("%s",arr);//特例 这种情况下scanf不需要取地址符
     94     printf("%s",arr);//输出
     95     //一个中文占两个字节
     96     //赋默认值0  在定义的时候初始化才会赋值0
     97     //0-7 8''  字符串结尾 后面的值 无效值
     98     //断点 --->添加监视
     99 
    100 #endif
    101 #if 0
    102     char arr[10] = "akdfnv";
    103     char mystring[80] = "play Debuggm.mp3 repeat";
    104     mciSendString(mystring, 0, 0, 0);
    105     printf("字符串长度%d
    ",strlen(arr));
    106 #endif
    107 #if 0
    108     if (strcmp("hello", "world") == 0)//比较两个字符串是否一致 
    109     {
    110         printf("字符串一致
    ");
    111     }
    112     else
    113     {
    114         printf("字符串不一致
    ");
    115     }
    116 #endif
    117 #if 1
    118     char arr[10] = { 'A', 'S', 'D', 'F', 'G' };
    119     strcpy(arr, "hello");//拷贝 第二个字符串拷贝到第一个位置 覆盖原来的内容
    120     puts(arr);
    121 #endif
    122 
    123 
    124     system("pause");
    125     return 0;
    126 }

     

     2018-06-19   21:58:48

     

  • 相关阅读:
    存储过程
    Java抽象类与接口的区别
    Spring资源
    30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)
    单例模式(Singleton)的同步锁synchronized
    常用快捷键大全
    设计模式学习总结(一)——设计原则与UML统一建模语言
    git命令
    Test测试方法
    oracle表分区
  • 原文地址:https://www.cnblogs.com/Yuuki-/p/9201349.html
Copyright © 2011-2022 走看看