12.15学习总结

今天老师为我们详细讲解了三道运用到数组知识的作业题,课后我有把这些题过了一遍,感觉自己对数组又熟悉了一些。随后在今天大部分的时间里,老师着重介绍与讲解指针,并通过实例让我们对指针有了更直观的认识。

14日作业题1
#include<stdio.h>
int main()
{
int arr[6] = {2,5,7,8,12};
int i = 0;
int j = 0;
int value = 0;
printf("input value:");
scanf("%d",&value);
for(j=0; j<6; j++)
printf("%4d",arr[j]);
printf("\n");
//循环遍历找到要插入的位置
for(i=0; i<6; i++)
{
//注意最大值问题
if(value < arr[i])
break;
}
//循环将移位,即以i为标准将元素往后移动一位
for(j=5; j>i; j--)
{
arr[j] = arr[j-1];
}
//将值插入
arr[i] = value;
for(j=0; j<6; j++)
printf("%4d",arr[j]);
printf("\n");
return 0;
}

作业题2
#include<stdio.h>
#define N 9 //定义输出数组的大小
int main()
{
int arr[N];
int i=0;
int temp=0;
for(i=0;i<N;i++)
{
printf("%4d",arr[i]);
}
for(i=0;i<N/2;i++)
{
temp=arr[i];
arr[i]=arr[N-1-i];
arr[N-1-i]=temp;
}
for(i=0; i<N; i++)
printf("%4d",arr[i]);
printf("\n");
return 0;
}

作业3
#include<stdio.h>
#define N 50
int main()
{
int i=2;
int j=0;
int arr[N];
int count=0;
for(i=2; i<100; ++i)
{
for(j=2; j<i; j++)
{
if(i%j==0)
break;
}
if(i==j)
{
arr[count]=i;
count++;
printf("%4d",i);
if(count%5==0)
printf("\n");
}
}
return 0;
}

二维数组
行可以省,列不可以省。

指针
(1)指针类型是一种特殊类型
DataType *name; name变量名

     int *p: 只能保存int型地址
      char *pc: 保存char型地址
      double *pd: 

(2)初始化
int *p = NULL

      int a=3;
      int *p= &a;

      int *pb;
      pb=&a;4

(3) 地址的访问
*:间接访问运算符
int *pb;
pb =&a; 地址
*pb取地址里的值

*pb += 30 也把a的值改变了
变量名 变量地址 存储
a 0x000012 10
pb 0x000034 0x000012

*pb:取指针对应内存

指针的类型和指针所指向的类型,

int pa
指针类型:int
去掉变量名之后的部分
指针指向的类型: int 去掉指针变量名和其前面的*

指针与数组
数组名是一个地址,
数组元素的访问:
int arr[5]={1,2,3,4,5};
int *pa=arr;
形式
arr[0]; arr[3];
*(arr); *(arr+3);
*(pa); *(pa+3);
pa[0]; pa[3];

(8)野指针:
没有初始化,或者其指向的内存被释放,而指针没有被置空;
危害:
造成系统资源的浪费,容易造成未知的致命错误

(9)指针地址的运算
指针的自增和自减
自增:指针向高地址方向移位
自减:指针向低地址方向移位

移动的字节数是指针所指向数据类型的大小

指针相减,代表两指针之间的距离
指针相加,没有意义

指针加减一个常量,表示地址往高字节或低字节方向移动
常量值*sizeof(对应数据类型)个字节!

概念区分
int buf[3]; 数组,大小为3,存放三个int型变量

int *pb; 指针

int *arr[3]; 指针数组

int (pa)[3]; 数组指针,又称行指针
int (
)[]pa;

二级指针
int a=10;
int *q=&a;
int **p=&q;
//定义一个指针,或对地址进行操作时,一定要

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,479评论 3 44
  • 作业整理; 指针的基本的结构与基础知识整理; 作业讲解:(1) 将2~100之间的素数 保存到数组中,并遍历输出,...
    比莉吉恩阅读 390评论 0 0
  • void* 类型指针:通用变体类型指针;可以不经转换,赋给其他指针,函数指针除外;malloc返回的就是void*...
    冰吉凌阅读 3,388评论 0 18
  • 1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧...
    金巴多阅读 1,832评论 0 9
  • 正文如标题。想养一头鲸鱼,不知道头这个量词是否可以形容鲸鱼,那么养一只也好啊。大海里的鲸鱼可以认养的吗?可以给它名...
    陆地上的鲸鱼阅读 663评论 0 2