dkfr.net
当前位置:首页 >> C语言中{t=*(A+i); *(A+i)=*(A+j); *(A+j)=t;}代表... >>

C语言中{t=*(A+i); *(A+i)=*(A+j); *(A+j)=t;}代表...

a是一个指针,a+i表示a所指位置的下i个内存区,a+j同理。这个程序的功能是: 交换 a+i 和 a+j 所指内存区的内容,t是中间变量。 就好像你要交换两瓶饮料,一瓶汽水,一瓶果汁,交换它们,要找一个空瓶子,这里,t就是空瓶子 a+i 和 a+j 就是你要...

因为 你给的信息才少的,所以,我给你的分析是: a i n j 我的猜测都是整型变量,你应该知道,*p =1就是,就是在p指向的那个地址空间,赋1值。 例如:p指向的那个空间地址为1000H 那么*p就等价于*(1000H)。 那么有了上面那个思路后,我们来看...

等号右侧是逗号表达式,逗号表达式由n个表达式组成,以逗号分割,其结果是最后一个表达式的值,因此这个式子是将a+j的值赋值给变量a

int a[3][4]; //假设定义一个3行4列的二维数组,所谓二维数组就是数组的数组 a[0]、a[1]、a[2]是数组a的元素,而这个元素是数组,而不是我们通常认为的基本数据类型的数据 所以*(a+i)就是获取数组a中第i个元素,等价于a[i],而a[i]本身又是一个...

比方说 int *p,a[2][2]; p=a[0]; 这个是指向第0行第0列 那么a[i]+j就是第i行第j列 &a[i][j] 取a[i][j]地址 *(a+i)+j 就是第i行第j列的值 *(a[i]+j) 第i行第j列的值 *(*(a+i)+j) 先是*(a+i)第i行然后*(a+i)+j第i行第j列的地址 最后*(*(a+i)+j) 第...

a=a+i:计算a+i结果赋给a a=(a=a+i,a+j):将括号右边的赋值给a,即a=a+j

*(a+i)+j代表的是第 i行,j列的那个元素,这个没有问题吧。 而那个元素是指针。不是值,所以再加*取值。 这和普通的 *p=a;一个意思。 主要原因是数组里面放的全部都是指针,你可以看你定义时候的声明就知道了。

a[ i*n+j] 这是数组a的一个元素,也称为下标变量。 下标 = i*n+j。 当一个2维数组 按一维排列时,第 i 行 第 j 列 的 元素 值 就等于 a[ i*n+j], n 是行宽。 程序例子: #include void fun(int *a, int row, int col, int n){ int i,j; for (i=0;i

很多语言都是三行代码 交换a,c: u=a; a=c; c=u; 是为了保证a和c互换,把a寄存在中间变量u

我们把这条语句分拆开就自然明白其中的含义: 1 --i 2 --i 3 ++j 4 a=(i==j)?i:j; 5 j++; 含义就非常清楚了: 1 首先i减去2,j加上1; 2 判断i和j是否相等: 如果不相等,a=j。 如果相等a=i(既然i和j相等,等于哪个不重要) 3 最后再将j加1。

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