码迷,mamicode.com
首页 > 编程语言 > 详细

四、数组与文字

时间:2020-01-20 12:34:07      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:color   计算机   变量   均值   平均值   算法   访问   double   abc   

1.数组

1.1定义数组

数据类型 数组名[常量表达式1][常量表达式2]...;
int x[5];    //一维数组
int y[2][3];    //二维数组

sizeof 运算符
sizeof (数据类型名)         sizeof (int)    //结果为4字节
sizeof (表达式)            sizeof (2+3.5)    //结果为8字节

 1.2访问数组元素

数组变量名 [下标表达式1][下标表达式2]...        //0是下界,N-1是上界

int x[3];    x[0]=10; x[1]=20; x[2]=30;
int y[2][3];        //二维数组y[0][0]到y[1][2]

数组的输入和输出使用循环语句来控制

1.3数组的初始化

int x[3] = {2,4,6};
int x[] = {2,4,6};
double [][3] = {1,2,3,4,5,6};    //部分初始化,未赋值自动为0

常用的数组处理算法有求和、平均值、最大/小值

2指针变量间接访问数组元素

int x[6] = {1,2,3,4,5,6};
int *p;
p = &x[0];
cout << *p;        //结果:1
p = &x[1];        //结果*p = 4

p = &x[0];        //p指向数组x的首地址
p = x;

2.1指针的算术运算

统一成p+=1,按一个单位加减

指针变量与整数进行加减:

p+n  的结果仍为T类型,地址值= p的地址+n*sizeof(T)

同类型指针变量的加减:

p1-p2  结果:int型  p1-p2 = (p1-p2)/sizeof(T)

2.2指针的关系运算

int x[6] = {1,2,3,4,5,6};

for(p = &x[0];p <= &x[5];p++)
    cout <<*p<<"";

取内容:

int x[6] = {1,2,3,4,5,6},*p = x;    //首先把数组x的首地址赋给p
*p  *(p+1) ... *(p+5)
p[0]  p[1]  ...  p[5]

 3动态内存分配

 3.1指针变量内存分配

指针变量名 = new 数据类型(初始值);
delete 指针变量名;

int *p;
p = new int;            //int *p = new int(10);
*p = 10;

3.2二维数组的动态分配

指针变量名 = new 数据类型 [整数表达式]; 
delete []指针变量名; 
int *p = new int[5]; 
*(p+1) = 10;

4字符类型

字符串常量:双引号括起来,如"China"、"中国"

转义字符:\n换行、\t制表符、\‘单引号、\"双引号、\\反斜杠 等等

字符数组:

char str[10] = {c,b,d};
char str[10] = "China";

//字符数组的输入和输出
char str[10];
cin >>str;

5中文处理

C++中支持“中”,不支持‘中’。

基于Unicode编码的中文处理:UTF8、UTF16、UTF32 ,c++采用utf16编码。

宽字符类型:关键字:wchar_t  例如,L"中国abc"

宽字符串的输入\输出:wcout、wcin   需要先转为GBK编码,再转为utf16

注:计算机内部对数组的管理和访问是通过指针(即内存地址)来实现的。

四、数组与文字

标签:color   计算机   变量   均值   平均值   算法   访问   double   abc   

原文地址:https://www.cnblogs.com/yangyangjia/p/12217353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!