指针串对象和指针
先看两个题目:
(第1题会让你基本上对串跟差别有所了解;第2题会让你了解C些存储机制)
第1个:
(1)char c="12345\0\0"; //(2) c={1,2,3,4,5};
(1)char *p=c;//(2) *p=c;
c=p=__
&c&p?1:0=__
c[0]=*c=__
&c[0]=&(*c)=__
c+2=&C[2]=__
(c)=__
(p)=__
把(1)换成(2)时输出结果又是怎样?
第2个:
例1)void
{char s="12345"; //char *s="12345";
*s='a';
cout < <s < <endl;
}
会报错吗?
例2)const char str1="aaa";
char str2="aaa";
const char *str3="aaa";
char *str4="aaa";
(str1str2) cout < <"12 OK" < <endl;
(....换成其它).................
请问str1,str2,str3,str4哪两个会相等
:
维:声明化形式有 3种:给定个数逐个赋值;给定个数部分赋值;不给个数全部赋值
例: a[8]={1,2,3,0,0,0,0,0}; a[8]={1,2,3,,}; a={1,2,3,,,,,};
2维:声明化形式跟维类似:
b[2][3]={ {1,2,3},
{4,5,6}};
[ 或 b[2][3]={1,2,3,4,5,6};]
或:将 b[2][3]换为 b[3]
或: [3][3]={{1,2,3};
{4,5,6}};
对象:只声明不化类定义中必须有个显式无参构造
2:串
和区别是串只能在声明语句中进行化而且指针形式和形式化机制在存储方式上是完全区别
# <iostream.H>
void
{char str="abcdefg"; //char *str="abcdefg";
str[5]='5';
cout<<str<<endl;
}
以上测试如果是str编译运行都正常如果换做*str运行会发生异常
最新评论