llgd.net
当前位置:首页 >> C语言中 int A=2; A%=4%1等于多少?怎么算的! >>

C语言中 int A=2; A%=4%1等于多少?怎么算的!

%是求余运算。。。 a%=4-1——a=a%(4-1)——a=2%3=2

这样看你就能理解了 2 4 6 8 10 12 a[3][2] 意思3行每行2个元素,数组下标是从0开始就算的所以 *(a[1]+1)的意思就是取出第2行的第2个元素,所以就是8了。

注意分清声明和定义的概念!! int a[5];这是声明 这个时候 数组里面的内容是混乱随机的不是0 ! int a[5] = {1,2,3};这是定义 这个时候,对应位置的内容被初始化 其他没有设值的,被编译器补成0了。

*(a+1): 是a[1][0]的地址; *(a[1]+1): a[1][1]的值; *(a+1)+2:a[1][2]的地址。

为了便于查看计算的过程 我改了一下源码 : #include "stdafx.h"#include "process.h"int main(int argc,char* argv[]){ int a[3][3] = { { 1, 2 }, { 3, 4 }, { 5, 6 } }; int i, j, s = 0; for (i = 0; i

【2】【3】代表 两行 三列,并且下表都是从0开始的,所以a【1】【2】 代表了第二行,第三列。 排序如下 1 2 3 4 5 6 显然可见 值为6

int a[3][3]={{1,2},{3,4},{5,6}} 不就是定义了一个3*3的数组,然后对他进行初始化,可以对全部元素初始化,也可对部分元素初始化,没初始化的默认为0; 第一行1,2,0 第二行3,4,0 第三行5,6,0 。。。这不是数组基础么。。。 简单的说,就...

B,,,,,,,,,,,,,,,,,,,

首先这是一个2行2列的数组,第一行12,第二行34。*(a+1)其实等价于a[1],意思是第二行行地址,也就是b选项中的那个。*(*a+1)等价于a[0][1],也就是2。如果实在难以理解,可以记住每层星号就是一个方括号,加几就是方括号里面的值,不加就是0

*(*a+1)这种写法是错的,a是数组第一个元素的地址,*a=1,*(*a+1)=*2,这明显是错的。

网站首页 | 网站地图
All rights reserved Powered by www.llgd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com