C语言经典问答摘录.doc

上传人:晟*** 文档编号:13704714 上传时间:2022-08-29 格式:DOC 页数:7 大小:20.50KB
下载 相关 举报
C语言经典问答摘录.doc_第1页
第1页 / 共7页
C语言经典问答摘录.doc_第2页
第2页 / 共7页
C语言经典问答摘录.doc_第3页
第3页 / 共7页
C语言经典问答摘录.doc_第4页
第4页 / 共7页
C语言经典问答摘录.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1.这样的初始化有什么问题?char *p = malloc(10); 编译器提示“非法初始式” 云云。答:这个声明是静态或非局部变量吗?函数调用只能出现在自动变量(即局部非静态变量) 的初始式中。因为静态变量的地址必须在编译的过程中就确定下来而malloc()申请的内存地址是在运行时确定的。2. *p+ 自增p 还是p 所指向的变量?答:后缀+ 和- 操作符本质上比前缀一目操作的优先级高, 因此*p+ 和*(p+) 等价, 它自增p 并返回p 自增之前所指向的值。要自增p 指向的值, 使用(*p)+, 如果副作用的顺序无关紧要也可以使用+*p。3 我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。为什么如下的代码(int *)p)+; 不行?答:在C 语言中, 类型转换意味着“把这些二进制位看作另一种类型, 并作相应的对待”; 这是一个转换操作符,根据定义它只能生成一个右值(rvalue)。而右值既不能赋值, 也不能用+ 自增。(如果编译器支持这样的扩展,那要么是一个错误, 要么是有意作出的非标准扩展。)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 公文范文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。