以下叙述中错误的是( )。
A) 可以给指针变量赋一个整数作为地址值
B) 函数可以返回地址值
C) 改变函数形参的值,不会改变对应实参的值
D) 当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
N诺智能批改可自动批改答案并给出反馈,每次使用将消耗 1个诺币
您当前的诺币数量: 个
N诺正在智能批改,预计需要30秒,请稍候...
这个叙述是错误的。在C语言中,虽然指针变量在底层存储的是地址(即内存中的整数位置),但直接给指针变量赋一个整数(尤其是非法地址或随机整数)作为地址值是非常危险的做法。这可能导致程序访问未定义或受保护的内存区域,引发程序崩溃或安全漏洞。正确的做法应该是使用有效的内存地址,例如通过malloc、calloc、realloc等函数分配的内存地址,或者全局变量、局部变量、静态变量的地址。
这个叙述是正确的。在C语言中,函数可以返回一个指针,即地址值。这是常见的做法,用于从函数中返回动态分配的内存、数组的首地址等。
这个叙述是正确的。在C语言中,函数参数是通过值传递的(对于非指针和引用类型)。这意味着函数内部对形参的任何修改都不会影响到实参。如果需要在函数内部修改实参的值,通常的做法是通过指针或引用(C++中)来传递参数。
这个叙述是正确的。stdio.h(或在C99及以后版本中推荐的stdio.h的替代品stdio.h)定义了NULL宏,用于表示空指针。因此,在包含该头文件后,可以将NULL赋值给指针变量,以表示该指针不指向任何有效的内存地址。
综上所述,错误的叙述是A) 可以给指针变量赋一个整数作为地址值。
不懂
amden 回复 19568276867: 指针变量必须是0xffffffff类型
如果函数的参数是数组的话 那改变一个不都改变了吗 所以B也是对的吗?
【解析】不能将一个整数直接赋给指针...
登录后提交答案