C指针与数组
2024-08-30 18:38:28
- 通过指针遍历数组的小把戏
#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();
}
输出结果:
最新文章
- css3【语法要点】
- Lazy<;T>;在Entity Framework中的性能优化实践(附源码)
- Android调用WCF
- cxf动态调用wsdl的一个冲突以及解决
- android 应用架构随笔二(定义BaseApplication并配置Application)
- PHP面向对象的一些深入理解
- 关于c语言中qsort函数的一点心得
- Unity NGUI UILabel文字变色 及相关问题
- Android_硬编码设置TextView字体大小
- ssm框架理解
- Step one : 熟悉Unix/Linux Shell 常见命令行 (三)
- Oracle排序分析函数
- 孤立的SQL用户
- es6学习笔记--新数据结构Set,Map以及WeakSet,WeakMap
- idea 自定义注释模板
- BZOJ1095 [ZJOI2007] Hide 捉迷藏 (括号序列 + 线段树)
- hexo+github page +markdown问题汇总
- 【枚举】Consonant Fencity @upcexam5110
- 【OCR技术系列之六】文本检测CTPN的代码实现
- Annotation方式配置AOP