c++ 字符指针&数组指针
字符指针&数组指针
字符指针可看成字符串,数组指针
字符指针创建
- *const char str=“this is a string”;
- new的标准指针操作
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char *str=new char[101]; //new来申请
cin>>*str;
cout<<*str<<endl;
delete[] str;
return 0;
}`
输入
“string"
输出是:
”s“
----why?
因为数组是连续存放的空间,而 *str
是首地址空间,也就是,我们输入的是string,实际只在*str 中存放了s,其余忽略了;
3. 两中插入字符指针的方法
·#include<cstring>
中的gets()和puts()函数:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char *str=new char[101]; //申请
gets(str);
puts(str);
delete[] str; //释放
return 0;
}
·以空格位间隔输入—getchar()
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char *str=new char[101];
int i=0;
while(true)
{
*(str+i)=getchar();
if(*(str+i)==' '||*(str+i)=='\n')
break;
i++;
}
for(int j=0;j<i;j++)
cout<<*(str+j);
delete[] str;
return 0;
}
数组指针应用
数组指针=数组首地址的指针,他的定义方法为
*p
1.一维数组的首地址=p=a =a【0】
2. p+1=a+1=&a[1] 指向一号元素
main()
{
int a[5],i,*pa;
pa=a;
for(i=0;i<5;i++)
{
*pa=i;
pa++;
}
pa=a;
for(i=0;i<5;i++)
{
printf("a[%d]=%d\n",i,*pa);
pa++;
}
}