东南大学第六章数组指针与字符串视频教程笔记
(一)数组
cin.get(C)
c++按行优先分配内存,matlab反之。
多维数组按维次序存储,越右边的下标变化越快。
数组名作参数传进函数,传的数组首地址,形参的改变直接影响实际的数组
sum(int a[][4],int nrow)
{...}
void main()
{
sum(A,3);
}
源码见文末
对象数组初始化,每个对象都要经过构造函数,析构函数(缺 省的)
(二)指针
不要用一个内部auto型变量去初始化static型指针
void *pv;指针存在,不知道存放的什么类型。
指针p加上或减去n,其意义是指针当前指向位置的前方或后方(第n个数据)的地址
int 的话的就是移动4个字节
类型标识符
char
unsigned char
short int
unsigned short int 无符短整型
int
unsigned int
float
double
long double
数组指针:int (*a)[3]
int a[10],*p
p=a;
p++;
指针数组:int *a[3]
数组指针:int (*a)[3]
指向常量的指针:不能通过指针来改变所指对象的值。
例:const int *pn=&a;
指针常量:指针本身的值不能被改变。
例:int *const pn=&n1;
对于常量意味着只能使用不能改变。
对象指针
void main()
{
}
(三)动态存储分配
new
T *p=new 类型名T (初值列表)
delete 指针P
分配数组
int *p=new int[3];
delete[] p;
int (*p)[3] ;
p=new int[2][3];
delete p;
指针作为函数参数
实参是数组名,形参为指针
指向指针的指针。
函数指针
(四)字符串
例:
char a[4],*p1,*p2;
a="abc";
cin>>p1;
(错误)
p1="abc";
p2=a;
cin>>p2;
(正确)
字符串的输入输出
char c[]="china"
cout<<c;
区别于
int c[]={1,2,3}
cout<<c;
整行输入字符串
cin.getline
cin.get
可以读入带空格,输入输出流
cin.getline(a,80,',');
cin.getline(b,80,'\n');
strcat(连接)
strlwr(转换为小写)
#include iostream.h
void sum(int a[][3],int x,int y)
{
}
void main()
{
}
典型例题
#include iostream.h
#include iomanip.h
void print(long *a,int n)
{
}
void main()
{
}
#include iostream.h
void main()
{
}
#include iostream.h
#include string.h
void main()
{
}
#include iostream.h
#include string.h
void main()
{
}