re: 常量指针 和 指针常量[未登录] Daniel 2013-03-30 06:20
想法很好 但是例子不是好例子
char str1[]={"Hello"};
char str2[]={"Hello World"};
这样初始化更好
re: 常量指针 和 指针常量[未登录] Daniel 2013-03-30 06:17
第二个例子
int main()
{char str1[]={"Hello"};
char str2[]={"Hello World"};
char * const ptr1 =str1 ;
*ptr1='A';
printf("%s \n",ptr1); //注意ptr1前面是没有*号的,不然编译通过却无法执行
return 0;
}
1.
2010-03-20 11:53 by kidst
erase( itList++) 是先获取下一个元素的位置再删除; erase( ++itList) 是删除以后再获取下一个元素的位置。
我觉得不应该这样理解。
我认为,erase(itList++)是itList先传递值给erase(),然后再自增;
erase(++itList)是先自增,然后再把自增后的值传递给erase(),这个是出错的根源。
----同意kidst上述观点
2.
2009-01-09 11:03 by Herbert
多谢cannan提点,不过用你提供的更简单的用法似乎还是有点漏洞,举个例子:
假如有一个列表 ShipList,里面的内容是0、1、2、3...9, 如果要从中删除那些取余3后为0或为1的数,删除后应该得出的结果是 2、5、8。
但如果是这样操作:
std::<int >::iterator it;
for( it = ShipList.begin(); it != ShipList.end(); it++)
{
if( (*it) % 3 == 0 || (*it) % 3 == 1)
ShipList.erase( it++);
}
这样的话会有两个问题,一个是得出的结果是 1、2、4、5、7、8(没有删除取余3后等于1的数);另外一个问题是当执行到列表中最后一个元素(即ShipList.end() - 1 )时,迭代器可能还会执行两次“++”,如果是这样那么it就到达了 ShipList.end() + 1 的位置,这样也会报错。
----出错是因为在for循环中多了一次自增操作,这样,在余0之后,自增了两次,当然就把余1的数漏掉了
re: 如何学习软件开发?[未登录] Daniel 2009-08-15 06:32
恩 google到这篇。
原本只是要找下vista下解决c程序兼容性问题的帖子
有意思。。我做了很多大型项目都是C#的。很多工厂的生产控制系统已经用C#做了(流水线作业系统对速度有要求)。回过头来看2年前的帖子。似乎已经可以放下这种争议了吧。
创意不错,支持!
有点 PowerShell 的意思,加了一个 TextBox 貌似方便了一些!
re: 动态链接dll[未登录] Daniel 2007-10-30 12:20
争论挺有意思
我是Gooooooooooooooogle过来的,恰巧看到了
我是这么理解的
静态链接是说 Lib文件里面包含完整的代码,而不仅仅是说几个导出函数
动态链接有两种方式,显示和隐式 如果提供一个 Lib和一个.h头声明,实际链接之后仍然需要.dll文件就是隐式,LoadLibrary,Get地址,那是显示。如果是隐式调用 Windows Shell程序在加载PE文件的时候会进行关联性文件检查,如果缺少Dll文件会提示,如果实现显式Load,Get的话,PE文件可以自性检查加载是否成功。
ares_tc_j的一番话说的重了点,但其实也是好意
个人觉得算法好的确很重要,但软件工程中代码的编写在整个软件工程中占的比重的确也很少,怎么说呢?仁者见仁,智者见智的事情,别人的话都参考一下也不是坏事吧,谁都不敢说自己什么都会吧?