若有定义:int x,*p;则以下正确的赋值表达式是______.

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 20:48:58
若有以下定义和语句:int a[4]={1,3,5,7},*p; p=&a[2]; 则*--p的值是【 】

结果是3.原理如下:--是自减运算符,也就是说--p可以等同于p=p-1;因为p是地址,所以p的自减运算是相当于往前移一个位置,原来p是指向a[2],往前移一个位置,p就指向了a[1],所以*--p就

若有定义int a[2][2]={1,2,3,4},*p[3];p[0]=a[1];则*(p[0]+1)表示的数组元素是

p[0]=a[1]是将a[1]数组的地址赋值给了p[0]为了更好的理解,我们定义一个int*q;q=p[0];这样*(p[0]+1)就等价于*(q+1)了,由于q是int型的指针并指向的a[1]的第0

若有定义语句:int a[2][3],*p[3];则下列语句正确的是

答案是C解决这类题型首先要分清类型.A错,虽然p的类型是(int**),a的类型是(int**),但是数组名代表的地址也不能改变.B错,因为p[0]的类型是(int*),a的类型是(int**).C对

C语言……….若有定义语句:int a[4]={1,3,5,7},*p;p=a;则*(p+1)的值是

*(p+1)=3楼主追问chars[10]={‘A’,‘\0’,‘B’,‘C’,‘D’};则strlen(s)的值为strlen是计算字符串长度,遇到'\0'结束返回长度,所以是1structnum{

老师,若已定义intx,y,z;执行语句x=(x=1,y=z=2,y++,z++);后,x为什么为2,

(x=1,y=z=2,y++,z++)逗号表达式按顺序从左到右执行,最后整个表达式返回最右值.所以最后返回z的值2,然后z再自加1.

若有定义:int *p,a=4; p=&a;则以下均代表地址的是:A)a,p B)&a,p C)&a,*p D)a,*p

选择BAa表示4C*p表示的就是a的值也就是4D两个都是值

若有定义int(*p)[3]; 则定义了一个名为p的指针变量 它可以指向每行有三个整数元素的二维数组

首先(*p)[3]是一个指针数组,意思就是p这个指针是指向一个含有3个元素的数组的,那么p指针每一次加1就相当于把p中存的地址加6(前提是int类型占2个字节,在VC中是占4个字节).举个例子:int

若有以下定义和语句:int a[5]={1,3,5,7,9},*p; p=&a[2]; 则++(*p)的值是__6__.

楼上回答很好.inta[5]={1,3,5,7,9},*p;等价于inta[5]={1,3,5,7,9};int*p;即p是一个指向整型的指针就好理解了

若已定义intx,y,z;执行语句x=(x=1,y=z=2,y++,z++);后,x为什么为2,

结果其实就是x=z++先赋值再自加,结果是2a=(b,c)这种运算,实际上就是a=c当然前面的运算也是要算的就这个题就是相当于x=1;y=z=2;y++;x=z++

C语言:若有定义 int *p,则表达式 p++ 的值就是 p 所指向的变量的地址值加1?

这是错的,p没有进行初始化再问:inta[]={1,2,3};int*p=&a[1];printf("%d",*(p++));printf("%d",*(p--));//为什么两次输出结果一样再答:自

若有定义int a[10],*p=a;,则p+5表示什么

a是个常量,不能变化,但是p是个指针变量,可以加减,p的加减与p的类型有关,如果p是个int则,每次加四个字节,就是int型的长度,其它的也是相同的.char每次加一个字节.p+5代表第六个数值的地址

若有定义:int x ,* p ; 则以下正确的赋值表达式是______ A.p = &x B.p = x C.*p =

A,p是一个指针,它存的是一个地址,而“&”是取地址符号,故p=&x表示把变量x的地址取出来存在指针p内,即让p指向x

.若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; 则++(*p)的值是___3__.

p=&a[2],p指向了a的下标为2的元素,C语言的数组下标是从0开始的,下标为2指的是第三个元素,2,++(*p)将该元素增加1,2+1=3

若有定义 int a[3][4],*p; 则对数组元素a[i][j](0

选择D,这是一个二维数组指针的问题.