C语言指针的一个问题
答案:3 悬赏:0
解决时间 2021-01-12 14:09
- 提问者网友:愿为果
- 2021-01-11 22:33
C语言指针的一个问题
最佳答案
- 二级知识专家网友:低音帝王
- 2021-01-11 22:50
#include
main(){
unsigned long long *pprimes=NULL;
unsigned long long trial=133;
unsigned long long a[5]={2,3,5,7,11};
pprimes = a;
int count = 0;
*(pprimes+count++)=trial;
int i;
printf("count=%d
",count);
for(i=0;i<5;i++) printf("%d ",(int)a[i]);
printf("
");
}运行结果:
count=1
133 3 5 7 11
结合运行结果可知,
*(pprimes+count++)=trial;表示先把trial的值赋值给(pprimes+count)的位置然后,count的值加1.
相当于pprimes[count]= trial;count++;
对于指针p,*p相当于取地址p处的值。
main(){
unsigned long long *pprimes=NULL;
unsigned long long trial=133;
unsigned long long a[5]={2,3,5,7,11};
pprimes = a;
int count = 0;
*(pprimes+count++)=trial;
int i;
printf("count=%d
",count);
for(i=0;i<5;i++) printf("%d ",(int)a[i]);
printf("
");
}运行结果:
count=1
133 3 5 7 11
结合运行结果可知,
*(pprimes+count++)=trial;表示先把trial的值赋值给(pprimes+count)的位置然后,count的值加1.
相当于pprimes[count]= trial;count++;
对于指针p,*p相当于取地址p处的值。
全部回答
- 1楼网友:旧脸谱
- 2021-01-12 00:19
NULL其实就是0值,我假设运行到 *(pprimes+count++) = trial;这条语句的时候count 的值是99,并且你要先知道count++是什么意思,他说的是count先参与运算,然后自增,于是将以上变量的值代入表达式:
*(pprimes+count++) = trial;
*(0 + 99 ) = 0; <----这就是你的表达式
count = 99+1;
*(a) = 8;就是说将内存地址为a的那块内存赋值为8;换成你这里的表达式就是将内存地址为count的那块内存(99这个地址)塞一个0值进去。
*(pprimes+count++) = trial;
*(0 + 99 ) = 0; <----这就是你的表达式
count = 99+1;
*(a) = 8;就是说将内存地址为a的那块内存赋值为8;换成你这里的表达式就是将内存地址为count的那块内存(99这个地址)塞一个0值进去。
- 2楼网友:長槍戰八方
- 2021-01-11 23:18
*(pprimes+count++)表示指针pprimes移动count次后所指向的对象
*(pprimes+count++)=trial;表示把trial的值赋给*(pprimes+count++)所指向的对象。
*(pprimes+count++)=trial;表示把trial的值赋给*(pprimes+count++)所指向的对象。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯