张孝祥VC++讲课记录整理:C语言基础与实践探索

需积分: 10 0 下载量 133 浏览量 更新于2024-12-25 收藏 531KB DOC 举报
"张孝祥的vc++讲课记录整理WORD" 这篇文档是张孝祥和袁龙友两位教师在2001年根据张孝祥的VC++课程讲课记录编写的草稿,旨在将讲稿转化为一本面向大众的书籍。书中强调了通俗易懂的写作方式,力求知识点解释详尽且覆盖广泛,结合实际开发经验,帮助读者理解并避免常见错误。作者注意到许多学员在学习VC++时,由于C语言基础不牢固,尤其是对于字符串、指针、类型转换和定义指向函数的指针类型等概念存在困惑,这成为了学习难点。 文档中通过一系列问题测试读者对C语言的理解,例如: 1. `strlen(str)`和`sizeof(str)`的值分别代表字符串的长度和分配的内存空间大小。 2. 使用`strcpy()`复制字符串后,`x`的值保持不变,而`strlen(str)`则变为复制的字符串长度。 3. 直接赋字符串字面量给`str`会导致编译错误,因为`str`是一个数组,不能直接赋值。 4. 对未初始化的指针`pstr`使用`strcpy()`会引发运行时错误,因为它没有指向有效的内存区域。 5. `const char*`和`char* const`的区别在于前者指针指向的内容不可变,后者指针本身不可变。 6. 将`const char*`类型的指针强制转换为`char*`类型后,可以调用`strcpy()`,但这样做可能会破坏常量约定。 7. `%d`用于打印整数,而不是字符串,所以`printf("%d", str);`会导致错误。 8. 直接将整数值赋给指针变量`pstr`会导致编译错误,需通过`void*`类型转换。 9. 类型转换`long y = (long)pstr;`通常可以进行,但要确保转换安全。 10. 当`p`被赋值为整数`3000`,`p+1`的结果不再有意义,因为指针不再指向内存地址。 这些问题旨在考察读者对C语言基础和指针操作的掌握程度,同时也预示了在学习VC++时需要巩固这些基础知识。通过解答这些问题,读者可以检查自己的理解,为后续深入学习VC++打下坚实基础。