ibm ds400:这样求字符串的长度为什么不可以?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 04:48:25
#include<iostream.h>

#include <string.h>

void main()
{

char *p="";
cin>>p;
int i=strlen(p);
cout<<i<<endl;

}

变量初始化赋值比较是赋一个常量,而你的strlen(p)的大小在编译时是无法确定的,因为编译器无法知道指针p是否始终指向同一个地方。如果改成如下就可以了
int i;
i=strlen(p);