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" 双引号 字符串 中文 "你好世界"
字符串用 '\0' 作为字符串结尾 一般是默认加上的 看不见
----->字符串一般用字符数组存放
举个栗子


输入时 不能有制表符
ascii----->char 数字---->字符
中文--->两个字符---->对应一个汉字
没赋值 都是无效值---->乱码
//一个中文占两个字节
//赋默认值0 在定义的时候初始化才会赋值0
//0-7 8'\0' 字符串结尾 后面的值 无效值
//断点 --->添加监视
#include<string.h>//用于字符串的操作的函数
求数组大小 sizeof
获取数组 gets(数组名称)
输出字符串 puts(数组名称)
求字符串长度 strlen()
比较两字符串 strcmp(字符串1,字符串2); 字符串不能用等号比较
字符串拷贝函数 strcpy(字符串1,字符串2);第二个字符串拷贝到第一个位置 覆盖原来的内容
字符串连接函数 strcat(字符串1,字符串2);
栗子




测试代码如下:
/*
上期回顾:
三大循环 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; 数组名[下标] //其中一个元素 下标可以是变量
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" 双引号 字符串 中文 "你好世界"
字符串用 '\0' 作为字符串结尾 一般是默认加上的 看不见 ----->字符串一般用字符数组存放 ascii----->char 数字---->字符
中文--->两个字符---->对应一个汉字
没赋值 都是无效值---->乱码 求数组大小 sizeof
获取数组 gets(数组名称)
输出字符串 puts(数组名称)
求字符串长度 strlen()
比较两字符串 strcmp(字符串1,字符串2); 字符串不能用等号比较
字符串拷贝函数 strcpy(字符串1,字符串2);
字符串连接函数 strcat(字符串1,字符串2); */ #include<stdio.h>
#include<stdlib.h>
#include<string.h>//用于字符串的操作的函数
//mciSendString(mystring, 0, 0, 0);
#include<windows.h>//graphics.h
#include<mmsystem.h>
#pragma comment(lib,"winmm.lib")
int main()
{
#if 0
//举个栗子
int arr[];//= {1,2,3,4};//arr是数组名字 可以随意取 赋值时元素用逗号隔开 //printf("%d",arr[3]);
//arr[0] = 1;
//arr[1] = 2;
//arr[2] = 3;
//arr[3] = 4;//数组下标规定是从0开始的不能大于元素个数 (越界) for (int i = ; i < ; i++)
{
//arr[i] = i;
printf("请输入arr[%d]的值",i);
scanf_s("%d",&arr[i]);
printf("%d\t",arr[i]);
} #endif
#if 0
//输入输出
char arr[];
scanf("%s",arr);//特例 这种情况下scanf不需要取地址符
printf("%s",arr);//输出
//一个中文占两个字节
//赋默认值0 在定义的时候初始化才会赋值0
//0-7 8'\0' 字符串结尾 后面的值 无效值
//断点 --->添加监视 #endif
#if 0
char arr[] = "akdfnv";
char mystring[] = "play Debug\bgm.mp3 repeat";
mciSendString(mystring, , , );
printf("字符串长度%d\n",strlen(arr));
#endif
#if 0
if (strcmp("hello", "world") == )//比较两个字符串是否一致
{
printf("字符串一致\n");
}
else
{
printf("字符串不一致\n");
}
#endif
#if 1
char arr[] = { 'A', 'S', 'D', 'F', 'G' };
strcpy(arr, "hello");//拷贝 第二个字符串拷贝到第一个位置 覆盖原来的内容
puts(arr);
#endif system("pause");
return ;
}
2018-06-19 21:58:48
C++学习(十四)(C语言部分)之 数组的更多相关文章
- 强化学习(十四) Actor-Critic
在强化学习(十三) 策略梯度(Policy Gradient)中,我们讲到了基于策略(Policy Based)的强化学习方法的基本思路,并讨论了蒙特卡罗策略梯度reinforce算法.但是由于该算法 ...
- Scala学习十四——模式匹配和样例类
一.本章要点 match表达式是更好的switch,不会有意外调入下一个分支 如果没有模式能够匹配,会抛出MatchError,可以用case _模式避免 模式可以包含一个随意定义的条件,称做守卫 你 ...
- Dart语言学习(十四) Dart泛型
什么是泛型? 通俗理解:泛型就是解决 类 接口 方法的复用性.以及对不特定数据类型的支持(类型校验) 如下代码,只能返回string类型的数据 String getData(String value) ...
- android学习十四(android的接收短信)
收发短信是每一个手机主要的操作,android手机当然也能够接收短信了. android系统提供了一系列的API,使得我们能够在自己的应用程序里接收和发送短信. 事实上接收短信主要是利用我们前面学过的 ...
- Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议
在上一篇中,留下了许可协议的问题,目前已经解决.感谢网友武全的指点! 问题 一般我们是用WixVariable 来设定许可协议.如下所示: <WixVariable Id="WixUI ...
- MYSQL数据库学习十四 存储过程和函数的操作
14.1 为什么使用存储过程和函数 一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句. 存储过程和函数的优点: 允许标准组件式编程,提高了S ...
- JavaWeb学习 (十四)————JSP基础语法
一.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素. JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. 二.JSP表达式 JSP脚本表达式(expression)用于将 ...
- spring boot 学习(十四)SpringBoot+Redis+SpringSession缓存之实战
SpringBoot + Redis +SpringSession 缓存之实战 前言 前几天,从师兄那儿了解到EhCache是进程内的缓存框架,虽然它已经提供了集群环境下的缓存同步策略,这种同步仍然需 ...
- php学习十四:抽象,接口和多态
多态为面向对象编程的精华所在,js等面向过程的语言虽然可以模拟面向对象,但是毕竟模仿的永远比不上真的,所以了解而且会使用面向对象的多态是必不可少的 在了解多态之前,我们必须要了解接口,但是接口又是在抽 ...
- ballerina 学习十四 values && types
ballerina 包含的数据类型有string int map array record boolean ojbect function table tuple any 简单说明 数据类型和其他语言 ...
随机推荐
- linux操作系统及命令Part 1
1.关于linux系统的安装与流程 (1)下载Vmware workstation 与 linux系统(centos版本.redhat版本.Ubuntu版本...)镜像. (2)详细安装见有道 ...
- 将excel数据分块多线程导入
参考链接:http://blog.csdn.net/liqi_q/article/details/53032027
- java开发简易计算器
所选用的编译工具为NetBeans /* * To change this license header, choose License Headers in Project Properties. ...
- Linux3.10.0块IO子系统流程(3)-- SCSI策略例程
很长时间以来,Linux块设备使用了一种称为“蓄流/泄流”(plugging/unplugging)的技术来改进吞吐率.简单而言,这种工作方式类似浴盆排水系统的塞子.当IO被提交时,它被储存在一个队列 ...
- delete请求
Action(){ int HttpRetCode; //定义一个变量,用于接收HTTP返回的状态码 web_add_header("Session-Id", "2e25 ...
- String类的常用方法总结
一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创建 ...
- maven3.5.0在win10中的安装及环境变量配置
1.maven的下载地址http://maven.apache.org/download.cgi.如下图,下载apache-maven-3.5.0-bin.zip 2.解压缩到自己指定的文件下,mav ...
- 关于js中函数的调用问题
js中函数的调用方法 1.直接调用 函数名(参数): 2.通过指向函数的变量去调用 例如: var myval = 函数名: 此刻 myval是指向函数的一个指针: myval(实际参数):此刻调用的 ...
- Docker(2):快速入门及常用命令
什么是Docker? Docker 是世界领先的软件容器平台.开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题.运维人员利用 Docker 可以在隔离容器中并行运行和管理 ...
- 强化学习4-时序差分TD
之前讲到强化学习在不基于模型时可以用蒙特卡罗方法求解,但是蒙特卡罗方法需要在每次采样时生产完整序列,而在现实中,我们很可能无法生成完整序列,那么又该如何解决这类强化学习问题呢? 由贝尔曼方程 vπ(s ...