sizeof对字符数组字符串使用

来源:互联网 发布:刘备是汉室宗亲吗 知乎 编辑:程序博客网 时间:2024/05/01 16:17
#include<iostream>

using namespace std;
void main()
{

char a[]={'a','b','c'}; //不是以字符串形式初始化,因此没有添加/0标志
char b[]={"abc"};
char c[]="abc";
char d[6]="abc";
char* e=a;
cout<<a<<endl; //输出abc加乱字符
cout<<b<<endl; //输出正确,应该是遇到/0结束
cout<<e<<endl;//输出abc加乱字符,与a相同
cout<<sizeof(a)<<"  "<<sizeof(b)<< "  "<<sizeof(c)<<"  "<<sizeof(d)<<endl;  //结果为3,4,4,6



cout<<"字符数组名输出,无结束标志:"<<a<<endl;
cout<<"字符数组名输出,有结束标志:"<<b<<endl;
cout<<"字符指针输出,无结束标志:"<<e<<endl;
int aa[]={1,3,2,4};
int* bb = aa;
cout<<"int数组名输出:"<<*aa<<endl;//输出aa,应该是输出aa数组的首地址,要输出整个数组的值,应该用循环
cout<<"指向int数组的指针输出:"<<bb<<endl;//输出bb中的地址,即aa的数组首地址。


//1、作为函数参数时,数组名自动降为普通指针

//2、比较 字符指针与int型指针,在输出时,int型指针按照一般规则输出,但是字符指针按字符串规则输出,以至于
//cout<<e输出的并不是地址
//字符数组名与int数组名的输出,同指针输出

//3、字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以'/0’作为串的结束。字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。


}

结果为:


0 0
原创粉丝点击