当前位置:首页 » 编程语言 » c语言指针选择题成都信息工程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言指针选择题成都信息工程

发布时间: 2023-01-23 16:44:08

c语言选择题,关于指针数组。求详解

int a[2][3]; 定义了一个二维函数,每一维数组有三个元素。
int (*pt)[3]; 定义了一个数组指针,也就是定义了一个指向有三个元素的指针,即该指针,每次自加1,地址跳过三个int
pt=a; 就是让pt指向a[0],注意a[0]是一个数组地址,里面有三个元素
对于A选项,pt[0][0]是正确的,pt[0][0]等价于a[0][0]
对于B选项,不正确,因为pt+1就是a[1], *(pt+1)[2]相当于a[3][0]不对。
因为运算符优先级,[]大于*,因此*(pt+1)[2]就是*pt[1+2] 也就是*a[1+2]。而*a[3]就等价于a[3][0]。越界了
改成(*(pt+1))[2]就对了,相当于a[1][2]
对于C选项,正确,*(pt[1]+2) 相当于a[1][2]
对于D选项,正确,*(a[0]+2)相当于a[0][2]

⑵ c语言选择题(指针)

答案是A,首先定义p是一个指向int类型的指针,不过这个指针没有初始化,也就是没有指向。然后定义了一个int类型的变量i,这里千万不要认为i也是个指针,如果i跟p一样,要在前面也加个*号。
然后分析答案: A,这里对p指向的变量进行赋值,这里是相当于初始化了。所以正确。
B,不正确/不合理,因为p的地址不确定,所以给i赋值赋的是地址值,这个地址本身就不确定,赋值没有意义,认为是不合理的。
C,不正确,因为p指向的位置未知,这里不能对p进行解引用取值,所以这个答案可以马上排除。
D,也不正确,这里p是个地址,没有对地址进行乘法和加法的运算,所以这个答案也可以马上排除。

⑶ C语言求教高手 关于指针的选择题

int a,*p,*q,p=q=&a;这句错了,你没看出来???
主意*q后面是个逗号,不是分号,你前面定义的p是一个指针,后面有定义p是一个int型变量,定义不一致啊,必然错了;所以只有4是对的,当然选D了

⑷ 一道C语言关于字符串和指针的选择题

A.
str1指向的是12345+'\0'这6个字节
str2指向的是abcdef+'\0'这7个字节
我们假设紧接着str1的6个字节的后面,存有一个别的变量str3,
那么如果把7个字节拷贝到6个字节的位置,多出来的那个字节就会影响到后面的str3。

B.
str[10]在建立以后,实际上已经存有东西了,只是一些系统的乱码,你可以打印它试试
所以如果使用strcat进行连接,实际上是从那些乱码的后面开始连接的,
然后就会出现A里面那个问题,连接完的字符串超出了str的范围了

C.
str[10]=""说明现在str里面没有东西,所以连接st的时候,是从str[0]开始连接的。
str的空间足够放入st的那些字符,所以OK~

D.
这个和上面的问题是一样的

PS:一楼的回答。。有些问题哈。。。。