试题错误分析

本文探讨了函数调用时的值传递与指针传递,强调了数据传递的单向性,即形参变化不影响实参。同时,介绍了C语言中的转义字符及其用途,并分析了双向链表节点插入的操作。此外,还讨论了字符串与数组的区别,以及结构体与共用体的赋值方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 调用函数时若是简单的变量的值的传递,则为单向的值传递。若是想进行地址传递,需要将参数接收改为指针类型。并且函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。

  这道题要明晰转义字符都有哪些,常见转义字符如下

  \a 响铃(BEL) 007
  \b 退格(BS) 008
  \f 换页(FF) 012
  \n 换行(LF) 010
  \r 回车(CR) 013
  \t 水平制表(HT) 009
  \v 垂直制表(VT) 011
  \\ 反斜杠 092
  \? 问号字符 063
  \' 单引号字符 039
  \" 双引号字符 034
  \0 空字符(NULL) 000
  \ddd 任意字符 三位八进制
  \xhh 任意字符 二位十六进制

要在双向链表前插入一个新节点,那便让这个节点的next指向所插入的节点,而由于它是双向链表,因此他的prior便指向之前的节点所指向的prior。

字符串有\0,而数组没有,因此x的长度大于y

 X为二维数组,从a选项分析,X【ii】为行,也就是类似一个一维数组的数组名,因此其加上i并取值就是二维数组的值。b选项中X+ii在取值,实际上就是一维数组的地址,在加上i再次取值就是二维数组的值。因此c选项便不正确。而d选项的表达是有问题的,X+ii在取值是对应一维数组的地址,在后面【i】是错误的表达。

 注意:此题中的(,)为逗号运算符,其最终结果为逗号后的值,因此该数组运算完之后为:a[3][2]={1,3,5}。取第一个数便是1

 结构体与共用体的区别如上图解释。

本题中的p就代表着结构体数组std,给std取值便是数组的首元素std[0].age。格式正确。而b中直接以数组名.name,std为一个地址,指向一个数组,无法对其进行赋值。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值