c语言,假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。这句话为什么是错的?

作者&投稿:籍凌 (若有异议请与网页底部的电邮联系)
C语言问题~

1.当然是9了。因为a[0]~a[9],最大也就到9了
2.数组名字。int a[10].那么a就是首地址了
3.因为*p,所以p是指针,p=a,意思是p的地址等于a的地址,也就是二维数组的首地址,又因为(*p)[2]; 所以其实p是数组指针,(*p)[0]指向第一行,
(*p)[1]指向第二行。
这里*(p+2)之后,指向了第一行的第三个数,就是30,又因为后面还有一个+1,就是指向第二行了,很明显30对应的第二行就是60.
10 20 30
40 50 60

前三个赋值语句都是正确的。选项D是错误的,a是数组,只能对数组元素赋值,要有下标。
选D。

如题所讲,a代表的是数组的首地址,它的值是不可以更改的,a只能表示数组首地址。所以a++本身就是不允许的。
p是一个指针,可以把数组首地址赋值给指针,指针的值是可以改变的,所以p++是没问题的。

c语言,假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。这句话是错的,是因为a是一个常量地址,表示a[0]的地址。所以a++是不可以执行的。
而p是一个指针变量,先p=a;然后再p++是完全没有问题的。


if语句中的i%2是什么意思?
if(i%2)就是判断i除以2的余数是否为零,不为零就执行if内的语句,如果余数为零,就不执行if内的语句。if(条件){ }是条件判断语句,条件为零,不执行if内的语句,条件不为零就执行if内的语句。i%2是求i除以2的余数。如:if(i%2){i++;} 当 i=8时,i%2=0 执行后i还是为8 ...

...int i=2,k,则执行 k=(i++)+(++i)+(++i);语句后,i和k的值分别是?详...
i=5,k=10。我用c++6.0编的。我也没想明白,不过确实是这个运行结果

C语言课程设计 贪吃蛇
在上文中,已定义蛇的位置坐标为数组类型,一组坐标对应一节的位置,假设有i+1节,由0到i节,第i节的坐标取第i-1节的坐标,第i-1节的坐标取第i-2节的坐标……直到第1节取第0节的坐标。而第0节的坐标,即蛇头的坐标要往某个方向变化,变化量为蛇每节的长度。蛇的这种坐标轮换需要循环语句使其继续下去。

while(1) 什么意思 while(i--)什么意思?
while(1)其中1代表一个常量表达式,while(1) 表示无限循环,除非你设置break等类似的跳出循环语句循环才会中止 while(i--)其中i是一个变量,因此表达式i--有不同的值,依次递减,i--是先取值后减,--i先加后取值,所以i--的值同未执行该自减运算时的i相等。

C语言编程中的++i和i++有什么区别?
i++和i--的区别:1、运算方式 i++属于自增运算,相当于i=i+1;i--属于自减运算,相当于i=i-1;2、值的变化:假设i=10,分别运行i++、i--后;i++后:i=i+1=10+1=11;i--后:i=i-1=9。

已知int i,a;执行语句i=(a=2*3,a*5),a+6;后,变量i的值
如果把这题的括号去掉的话,结果就是6了。同样根据优先级的方法,i直接就等于a=2*3了。但是如果把题换成i=(a=2*3,a*5,a+6);后,答案就是12了。根据逗号表达式的特点,就可以得出答案。这题主要考优先级关系。要学好C语言,这个一定要会哦。如果还不懂可以追问我哦。呵呵。逗号表达式的...

for(i=0; i<2, i++){循环体语句;}
在c语言中 for(i=0;i<2,i++){ 循环体语句;} 这样的循环体会执行2次(分别是i=0和i=1时的情况)它的执行流程是这样的:首先给变量i赋初值0,然后判断,若满足条件i<2(是),就执行循环体的语句,完成后再i++,即 i = i + 1;i 变成1,然后再次判断是否满足条件i<2(仍是),就再...

关于C语言的问题。已知 int i = 5; 执行语句 i += ++i; i 的值是 我...
我们换到你这道题上,+=这个运算符的优先级比++这个运算符低,所以先算++这个运算符,关于这个自加运算符,有是一个考点,++i是先+1,再使用,而i++是先使用,后+1,考虑到你刚接触C语言不久,这条规则你先死记下来,以后慢慢就会明白~i是5,加1变成6,+=运算符意思是这样的,比如x+=y,...

执行语句for(i=1;
执行语句 for (i=1; i++<4;) ; 后变量 i 的值是5。当i==3时(判断后i变为4),满足条件,执行循环;当i==4时(判断后i变为5),不满足条件,退出循环。++i表示先加1后赋值。当i变化为4时,4<4不成立,但i=i+1仍然执行,但不执行循环体。循环结束,故i最终变化为5。

c语言中的语句有哪几类
在a>b条件的控制下,出现两个可能的分支流程。而switch语句能实现多个分支流程。 do while语句,while语句,for语句转向语句 2,循环语句有for、while和do_while三种。当循环语句的循环控制条件为真时,反复执行指定操作,是C语言中专门用来构造循环结构的语句。 如:for(i=1;i<10;i++) printf("%d"...

市北区18022275295: c语言 int a[10] 这个语句是什么意思?为什么不能用a++进行赋值? -
通施丙氧: int a[10]; 定义一个数组.相当于一次性定义10个int型变量,a[0]表示第1个,a[1]表示第2个.数组不允许使用a++

市北区18022275295: 在C语言中,a[10]是什么意思 -
通施丙氧: C是高级语言.它把高级语言的基本结构和语句与低级语言的实用性结合起来.C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元. 2.C是结构

市北区18022275295: c语言int a[10] 10是什么意思 -
通施丙氧: inta表示a这个变量是整型,只能存放整数. inta【10】【10】 指的是代表a的二维数组,是指向一个有十个元素的数组的指针,或者说a是具有十个元素的数组的首元素的地址,这十个元素,每个元素都是一个数组. 扩展资料 在C语言的定义...

市北区18022275295: 在C语言中,设 int a=10,则执行完语句 a+=a - =a*a后,a的值是( ) 求过程 -
通施丙氧: -80 a+=a-=a*a; a-=a*a的值为-90; a+=a-=a*a的值为-180; a=-90+-90=-180. 扩展资料 在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]; 在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]; 使用printf输出int占用字节数量: printf("%d",sizeof(int)); 除了int类型之外,还有short、long、long long类型可以表示整数. unsigned int 表示无符号整数,数据范围为[0~2^32-1].

市北区18022275295: C语言问题:已有定义int a[10]={1,2,3,4,5,6,7,8,9,10} 要求通过指针完成从一维数组中删除下标为K的元素 -
通施丙氧: “for(p=a;p-a<10;p++)”这个循环已经让p指向了数组中最后一个元素, 所以“for(i=k;i<10;i++)”在这个循环之前应该让p重新指回数组的第一个元素,故改为for(i=k,p=a;i<10;i++)另外 删除一个元素之后 数组中只有9个元素,所以应当把a[9]赋值为'\0'或者在最后一个循环中控制条件改为p-a<9

市北区18022275295: C语言 int a[10] 定义了一个长度为十的数组 数组名a是不是也占内存空间? -
通施丙氧: a是数组首元素a[0]的内存空间地址.a[10]一共分配了10个int型空间,每个int型空间占2字节(假设),则整个a[10]占20字节 既然a是a[0]的地址,即a=&a[0],当然占了内存空间啦 不懂可以追问

市北区18022275295: C语言设程序中变量定义语句如下int a=10,b=4float x=2.5,y=3.5写出下列表达式的值 -
通施丙氧: (1)2,0 这个应该没问题那 除法 (2)2,4 这个也简单的 求余数 (3)6 a+x会变成整形的 然后在除以2 (4)7.0000000 首先将a+b转化为float 再除以二 打印会显示8位 (6)0 int x =2 int y =3 x/y=0 望采纳 如果有不对的地方请指出

市北区18022275295: c语言,int a[10]最后会以'\0'结尾吗?如果 int *ptr=a; while (*a -
通施丙氧: 不会,只有字符串才是 '\0' 结束;这个最好用 for(int i= 0; i

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网