返回信息流int main()
{
char * p = “ABCDE” ; //指向字符串的指针
cout<<p<<endl;
cout<<p[3]<<endl;
cout<<&p[3]<<endl;
return 0;
}
这个程序输出是
ABCDE
D
DE
int _tmain(int argc, _TCHAR* argv[])
{
int* p;
int q[] = {1,2,3,4,5,6,7,8,9};
p = q; //指向数组的指针
cout<<p<<endl;
cout<<p[3]<<endl;
cout<<&p[3]<<endl;
return 0;
}
这个输出就是
0012FF34
4
0012FF40
也就是p和&p[3]的值全变成内存地址的值了,为什么当指针指向字符串的时候不显示内存地址呢?
字符串和普通的数组有什么区别吗?
刚才看了看置顶帖,发现"ABCDE”是常量,不放在栈区,和这个有关吗?请各位达人赐教……拜谢
[em21]
这是一条镜像帖。来源:北邮人论坛 / cpp / #15841同步于 2008/11/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
有关字符串和数组的问题
DaiGakuSei
2008/11/12镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
这个就是cout的问题。整形和字符型在这个函数中的处理是不一样的
前面相当于
printf("%s", p);
printf("%c", p[3]);
printf("%s", &p[3]);
后面的 相当与
printf("%d", p);
printf("%d", p[3]);
printf("%d", &p[3]);
re
【 在 nobody 的大作中提到: 】
: 这个就是cout的问题。整形和字符型在这个函数中的处理是不一样的
: 前面相当于
: printf("%s", p);
: ...................
【 在 nobody 的大作中提到: 】
: 这个就是cout的问题。整形和字符型在这个函数中的处理是不一样的
: 前面相当于
: printf("%s", p);
: ...................
很好 一直有这个疑问 终于有点懂了
【 在 nobody 的大作中提到: 】
: 这个就是cout的问题。整形和字符型在这个函数中的处理是不一样的
: 前面相当于
: printf("%s", p);
: ...................
en.......ming bai le ...
re
主要是字符串对cout的重载不同
【 在 nobody 的大作中提到: 】
: 这个就是cout的问题。整形和字符型在这个函数中的处理是不一样的
: 前面相当于
: printf("%s", p);
: ...................
【 在 nobody 的大作中提到: 】
: 这个就是cout的问题。整形和字符型在这个函数中的处理是不一样的
: 前面相当于
: printf("%s", p);
: ...................
re