C语言数组和指针的问题一道非常值得深思的笔试题

2020-01-06 19:58:26刘景俊

所以,t = (str+4)[-1] =======> t = *(str+4-1) ======> t = *(str+3) ;

所以:


#include <stdio.h>
int main(void)
{
 char *str[] = {"ab","cd","ef","gh","ij","kl"};
 char *t ;
// t = (str+4)[-1];
// printf("%sn",t);
 t = *(str+4-1);
 printf("t:%sn",t);
 return 0 ; 
}

运行结果:

如果换种写法,如:


#include <stdio.h>
int main(void)
{
 int b ;
 int a[10] = {1,2,3,4,5,6,7,8,9,10};
 int *p = &a[0] ;
 b = (p+8)[-4];
 printf("b:%dn",b);
 return 0 ; 
}

你能知道答案是多少吗?一样的运算法则:

再接再励!!温故而知新,注重基础,一点细节也不要放过!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ASPKU的支持。


注:相关教程知识阅读请移步到C++教程频道。