C++学习记录:字符数组与指针

一、字符数组

语法: char arr[]={“…”};

1.字符数组在定义时如果不写长度,会根据后面字符串的长度来设定

2.字符数组及其指针可以独立地输入,输出(会直接输入输出字符串)

示例:

1
2
3
4
5
6
7
8
9
10
char arr[]={"Hello"};//定义字符数组。
char *a=arr;//该字符数组的指针。

//赋值字符数组,通过数组名及指针名都可以直接赋值字符数组。
cin>>arr;
cin>>a;

//同理,通过数组名和指针名都可以直接输出。
cout<<arr;
cout<<a;

二、一些小细节

1.一个char占一个字节,字符数组由于末尾有占位符\0,会多占一个字节。

但如果定义形式为 char a[]={‘h’,‘i’};则末尾不会有占位符,也不会多占一个字节。

2.打印 字符数组名字+i,会从下标为i的字符开始字符串(该字符和它后面的字符都会输出)。

3.定义字符数组后再用输入重新赋值字符数组,若长度超过原数组会导致栈被破坏,缓存区溢出。

4.若定义一个字符数组但不给赋值,那么它的长度为0 例:char a[10]={};不赋值,长度为0

示例:

1
2
int a=sizeof(arr);//会占6个长度
cout<<arr+1;//打印ello

5.字符数组不可以用“=”赋值

三、对字符数组的一些操作

算了,放在下一篇。