张孝祥VC++讲义:通俗易懂的C++教程与实战检测

5星 · 超过95%的资源 需积分: 10 1 下载量 117 浏览量 更新于2024-08-01 收藏 425KB DOC 举报
张孝祥的《VC++讲课记录》是由他和袁龙友老师在2001年根据张孝祥的授课内容整理而成的初级教程。这本书稿以一种通俗易懂的方式讲解VC++基础知识,注重理论与实践相结合,力求消除读者在学习过程中的疑问,使他们在轻松愉快的阅读中提升编程技能。书中特别关注了C语言的基础,因为作者在教学过程中发现,许多学员虽然学习VC++,但在C语言的理解上存在不足,例如对字符串操作、指针理解、类型转换等问题。 章节中的几个例子旨在检验读者对C语言的理解程度: 1. 检查`strlen(str)`返回字符串长度(这里是13),而`sizeof(str)`返回数组大小(通常是11,因为包括结束符'\0')。 2. 当`str`被赋值为新地址后,`x`保持不变(35),`strlen(str)`可能更新为新字符串的长度。 3. 将字符串赋值给`str`会导致错误,因为`str`是常量,不能直接赋值。 4. `const char* p1`和`char* const p2`的区别在于,`p1`是常量指针,不能修改所指向的内容,而`p2`是普通指针但不能改变其指向的const属性。 5. 要将`str`赋给`p1`,需要类型转换,因为两者类型不匹配。类型转换本质是数据类型的互换,确保程序正确执行。 6. 尝试打印`str`会出错,因为指针被赋值为整数,而非字符串。 7. 将整数赋给指针`pstr`会编译失败,需要确保指针指向内存地址,可以通过`char *pstr = (char*)3000;`进行修改。 8. 将`long`类型的值赋给`long* y`是正确的,但`*p = 0x00313200;`将导致字符串`str`被修改,输出可能是乱码,因为每个十六进制数对应一个字符。 9. 对于`p = 3000`,由于`p`是字符指针,加1后的结果取决于`3000`的实际含义,如果它是一个有效的内存地址,结果将是下一个字符的地址。 这本书提供了实用的技巧和常见错误分析,强调了扎实的C语言基础在学习VC++的重要性,并鼓励读者在实践中深化理解。如果你对C语言和VC++编程有兴趣,这本书将是一个有价值的参考资料。同时,作者也欢迎读者提出反馈,共同完善著作。