string类型的初值不是随便赋的,记一次奇怪的访问冲突事件
2008-03-06 21:58
288 查看
今天我哥哥的LP大人要我给他写一个小程序,本来用C#写的,但是她机器上没有.NET,于是改用C++。
首次代码如下:
//Main.cpp
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::strlen;
void Translate(char* p_str)
int main()
int MyStrlen(char* p)
public void test()
{
string test;
for(int i=0;i<4;i++)
test=i.ToString();
Console.Write("{0}",test);
}
你猜会输出什么,告诉你,其实什么也不会输出,因为string没有初始化,该变量在出了for的循环作用域后又会自动变为未初始化状态。如果你一开始string test=null;那么最后就会输出4。具体大家自己试试吧。这次不再絮述。
首次代码如下:
//Main.cpp
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::strlen;
void Translate(char* p_str)
int main()
int MyStrlen(char* p)
public void test()
{
string test;
for(int i=0;i<4;i++)
test=i.ToString();
Console.Write("{0}",test);
}
你猜会输出什么,告诉你,其实什么也不会输出,因为string没有初始化,该变量在出了for的循环作用域后又会自动变为未初始化状态。如果你一开始string test=null;那么最后就会输出4。具体大家自己试试吧。这次不再絮述。
相关文章推荐
- 一次数据类型转换中访问冲突的遭遇
- Delphi中返回类型为string的函数的一个陷阱(不是很懂)
- (委托事件处理)关于多线程执行显示进度条的实例(转)&&线程间操作无效: 从不是创建控件“rtxtEntryNO”的线程访问它。
- 字符串字面值与标准库string类型不是同一种类型
- 如果不空null并且不是空字符串才去修改这个值,但这样写只能针对字符串(String)类型,如果是Integer类型的话就会有问题了。 int i = 0; i!=''。 mybatis中会返回tr
- string不是基元类型,枚举是值类型
- c++primer 中说字符串字面值 和string类型不是同一种类型
- mybatis查询参数为0且类型不是string的小问题
- Java中String类型变量初值为null时的连接问题
- String类型赋初值问题
- java:String不是基本类型,不是数组,是类,而数组也是类
- 自定义Cell访问不了自己的set方法,并且对象初始化产生的不是自定义的类型(cell.contact = self.contacts[indexPath.row])
- SharePrefence存储中,get方法里面的默认值类型就是要和本身String 、int等一样,不是都是0
- 怎么证明string不是值类型
- Java中String类型变量初值为null时的连接问题
- c#构造函数对string类型赋初值
- C++中有string类,string是一个类不是一种类型,c语言中没有
- 记一次dll强命名冲突事件
- 出现“发生访问冲突”类型错误的解决方法
- 指针类型map在调用find函数时抛出异常return (_Parent(_Myhead));提示访问冲突