• 通过指针遍历数组的小把戏
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
void main()
{
int a[] = {,,,,,,,,,};
for (int *p = a; p <= a + ; p++)
{
printf("值是%d,地址是%p\n",*p,p);
}
getchar();
}

  • a代表指向整型数组首元素地址的指针,被称作指向整型类型的常量指针,原因见下属上机实验结果,而p相对而言就是变量指针,可以把数组a[10]的首地址a赋值给p

左值,处于赋值号左边可以被赋值的变量,实验结果是提示左值不可赋值

  • 也可以巧妙安排借助指针改变地址中存放的值
void main()
{
int a[] = { , , , , , , , , , };
time_t st;
srand((unsigned int)time(&st));
//利用指针替换数组a
int *p = a;
for (int i = ; i < ; i++)
{
*p = rand()%;//指针当前位置的元素改为以时间为种子生成的随机数
p++;//指针向前推进,遍历到数组的下一个元素
}
for (int *p = a; p < a + ;p++)
{
printf("当前元素是%d,地址是:%p\n",*p,p);
}
system("pause");
}

输出结果:

  • 也可以利用指针运算性质,不断的推进地址,达到访问地址中存放的值的效果
void main()
{
time_t ts;//声明了一个时间
int a[] = {,,,,,,,,,};
srand((unsigned int)time(&ts));//以时间为种子生成随机数,如果省略此行代码,则下一行代码生成的总是一个数
printf("此刻,生成的随机数是%d\n", rand() % );//生成0-99----对100取余,肯定数字小于100
int i = ;
int num[];
for (int *p = num; p < num + ;p++)
{
num[i] = rand() % ;
i++;
}
int *q = num;//这里用到了num是数组首元素地址的特性q+i=&num[i] *(q+i)=num[i]
for (int i = ; i < ; i++)
{
printf("q[i]=%d, *(q+i)=%d\n",q[i],*(q+i));
}
getchar();
}

  • 求随机数组的最大值及其下标
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
time_t st;
srand((unsigned int)time(&st));
int crazyarray[];
for (int i = ; i < ; i++)
{
crazyarray[i] = rand() % ;
}
int *p = crazyarray;
int max = *p;
int index = ;
for (int *q = crazyarray; q < crazyarray + ; q++)
{
printf("%d\n", *q);
if (*q>max)
{
max = *q;
index= q - p;
}
}
printf("最大值是%d,下标是%d\n",max,index);
getchar();
}

输出结果:

最新文章

  1. css3【语法要点】
  2. Lazy&lt;T&gt;在Entity Framework中的性能优化实践(附源码)
  3. Android调用WCF
  4. cxf动态调用wsdl的一个冲突以及解决
  5. android 应用架构随笔二(定义BaseApplication并配置Application)
  6. PHP面向对象的一些深入理解
  7. 关于c语言中qsort函数的一点心得
  8. Unity NGUI UILabel文字变色 及相关问题
  9. Android_硬编码设置TextView字体大小
  10. ssm框架理解
  11. Step one : 熟悉Unix/Linux Shell 常见命令行 (三)
  12. Oracle排序分析函数
  13. 孤立的SQL用户
  14. es6学习笔记--新数据结构Set,Map以及WeakSet,WeakMap
  15. idea 自定义注释模板
  16. BZOJ1095 [ZJOI2007] Hide 捉迷藏 (括号序列 + 线段树)
  17. hexo+github page +markdown问题汇总
  18. 【枚举】Consonant Fencity @upcexam5110
  19. 【OCR技术系列之六】文本检测CTPN的代码实现
  20. Annotation方式配置AOP

热门文章

  1. java虚拟机栈(关于java虚拟机内存的那些事)
  2. asp.net core-2.在vs2017中创建asp.net core应用程序
  3. 阿里云ecs不同网段内网互通
  4. 怎样理解Object.create()方法
  5. (四)输入参数与输出类型为复杂类型的web服务
  6. 【转载】使用appium遇到的坑
  7. C#一些面试知识题
  8. SSL Virtual Servers
  9. webpack如何使用vue
  10. ES6 Proise 简单理解