笔记七

昨天余留作业

1。插入一个数

int arr[6]={1,5,6,8,12};
int i=0;
int j=0;
int value=0;
printf("input value:");
scanf("%d",&value);
for(i=0;i<6;i++){
 if(value<arr[i]){
 break;
 }
 for(j=5;j>i;j--){
  arr[j]=arr[j-1];
 }
 arr[i]=value;
 for(j=0;j<6;j++){
  printf("%d",arr[j]);  
 }
  printf("\n");
}

2.素数

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("%d",i);
   if(count%5==0){
    printf("\n");
   }
  }
  for(i=0;i<count;i++){
   printf("%d",arr[i]);
   printf("\n");
  }
 }
}

一.数组
1.二维数组
行数可以省略,列不可省略
//以下初始化方法均可 int arr[][3]={1,2,3,4,5,6,7,8,9}; //int arr[3][3]={1,2,3,4,5,6,7,8,9}; //int arr[][3]={1,2,3,4,5,6}; //int arr[][3]={0}; //遍历输出二维数组 int i=0; int j=0; for(i=0;i<3;i++){  for(j=0;j<3;j++){   arr[i][j]=3*i+1;  } } for(i=0;i<3;i++){  for(j=0;j<3;j++){   printf("arr[%d][%d]=%d\n",i,j,arr[i][j]);  } }
2.指针
(1)指针类型是一种特殊的类型
   datetype name;
   datetype
name;
   datetype * name;
   指针和普通变量的区别
    指针:存地址;
    普通变量:存值;
   指针只能保存与其相同的类型。
(2)
(3)地址的访问
  :间接访问运算符
  int a=10;
  int pa;
  pa =&a;
  
pa:取指针对应内存里面的值
(4)可以把指针的值赋给同类型的指针
(5)不同类型的指针的大小
(6)指针的类型和指针所指向的类型
  int pa;
  double pb;
  指针的类型:去掉变量名之后的部分
  指针所指向的类型:去掉指针变量名和其前面的

(7)指针与数组
  数组名是一个地址。
  数组元素的访问:
  int arr[5]={1,2,3,4,5};
  int p=arr;
  arr[0];arr[3]
  
(arr); 
(arr+3)
  
(p); (p+3)
  p[0]; pa[3]
(8)野指针
  没有初始化,或者其指向的内存被释放,而指针没有被置空;
  危害:
   造成系统资源的浪费,容易造成未知的致命错误;
(9)指针地址的运算
  自增:指针向高地指方位移动
  自减:往底地址方位移动
  移动的字节数是指针所指向类型的大小
  指针相减,表示两指针之间的距离,相加没有意义。指针加减一个常量,表示地主往高字节或低字节方向移动,常量值
sizeof(对应数据类型)个字节!
(10)概念区分
  int buf[3];
  数组大小为3,存放三个int型变量
  int *pb;
  指针,其类型为int *型
  int arr[4];
  指针数组
  int (
pa)[3];
  数组指针,有称行指针

二级指针

datatype **pointorname;
 int a=10;
 int *q=&a;
 int **p=&q

p=q;
 
p=q=a;
 定义一个指针,或对地址进行操作时,一定要确定指针的指向

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

推荐阅读更多精彩内容