有以下程序: main( ) int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p-2; printf("%d\n",*p+*q);

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有以下程序: main( ) int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p-2; printf("%d\n",*p+*q);相关的知识,希望对你有一定的参考价值。

有以下程序: main( ) int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p-2; printf("%d\n",*p+*q); 程序运行后的输出结果是 ( )。
A 16 B 10 C 8 D 6
求仔细解答、初涉C程序,对指针不是很理解、、望大神耐心帮助

emmm,一楼的回答是对的。楼主看一下*q=p-2,你是不是把这个条件抄错了?习题上是不是*q=p+2

①*p=&a[3],所以*p=4(这个不解释了)

②A我们明确一个概念,就是a[10]这串位置是连续的。

   B假设i=*p(i为p所指的单元格的值)。*p=4,即i=&a[3]=4

   Cp-2即p所在的地址往前推2单元格;即i所指的值往前推2单元格,即i=&a[3]往前推2单元格,即&a[1]=2

综上所述4+2=6

参考技术A main( )

int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p-2;
//*p=&a[3]把a中的3索引号地址给指针p,3索引号处为4,因为索引是从0算起
//*q=p-2把p的地址减2个int位,即1处的索引号地址给指针q,1处的索引号处的值为2
printf("%d\n",*p+*q);
//*p+*q的值,是索引3处的值(4)加上索引1处的值(2),等于6。

答案为6或为D,本回答被提问者和网友采纳

2022-10-14:以下go语言代码输出什么?A:0;B:7;C:9;D:不能编译。 package main import “fmt“ func main() { a := []int

2022-10-14:以下go语言代码输出什么?A:0;B:7;C:9;D:不能编译。

package main

import "fmt"

func main() 
    a := []int7, 8, 9
    fmt.Println(a[real(2)])

答案选C。go中slice的下标不能是浮点数,但real(2)是常量,所以是能编译通过的。

以上是关于有以下程序: main( ) int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p-2; printf("%d\n",*p+*q);的主要内容,如果未能解决你的问题,请参考以下文章

C语言选择题 以下四个程序中不能对两个整型值进行交换的是( )

2022-10-24:以下go语言代码输出什么?A:3 3;B:3 4;C:0 0;D:0 1。 package main func main() { m := make(map[int]int

2022-10-14:以下go语言代码输出什么?A:0;B:7;C:9;D:不能编译。 package main import “fmt“ func main() { a := []int

c语言:void reverse(int a[], int n)是啥意思

2022-06-30:以下golang代码输出什么?A:0;B:2;C:运行错误。 package main import “fmt“ func main() { ints := make

2022-11-08:以下go语言代码输出什么?A:2;B:编译错误;C:运行 panic。 package main import “fmt“ func main() { a := []int