黑马程序员技术交流社区

标题: 今天新学的内容 [打印本页]

作者: 颖峰    时间: 2015-9-1 21:10
标题: 今天新学的内容
/*数组*/
#include <stdio.h>

int arrMy(int arr[],int size);
int add(int d);

int main(){
   
    int a=70;
    int b=80;
    int c=90;
   
    /*
     定义: 数据类型 数组名[长度(数量)] ;
      int arr[3];
     */

    /*初始化:类型 数组名[(长度)]:={元素1,元素2,…}*/
    int arr[3]={70,80,90};
   
    /*初始化的第二种方式,单独初始化*/
    int arr2[3];
//    arr2={70,80,90};//错误
   
    arr2[0]=70;
    arr2[1]=80;
    arr2[2]=90;
   
     /*初始化的第三种方式,省略长度*/
    int arr3[]={70,80,90};
//    printf("arr3[1]=%d\n",arr3[1]);
//    数组必须要定义长度(正整数),
//    int arr4[-1]={};//错误
   
   
//    定义时可初始化(长度必须是常量)或之后单独初始化
    int count=3;
//    int arr5[count]={70,80,90};//错误
    int arr5[count];
    arr5[0]=70;
    arr5[1]=80;
    arr5[2]=90;
   
//    如果省略长度,那么表示,后面初始化几个元素,长度就为几.
    int arr6[3]={1,2};
    arr6[2]=3;
    int arr7[]={1,2,3};
   
//    arr7[2]=3;//错误
//    int arr8[];//错误.当没有在定义数组时赋值.不能省略长度.
   
//    类型一致.不然可能丢失精度.
//    arr7[0]=2.2;
   
//    数组第一个元素的地址就是这个数组的地址.二者是一致的
//    printf("%p---%p\n",arr7,&arr7[0]);
   
//    地址传递时,函数里可以直接改变变量的数据.
//    printf("%d\n",arr7[0]);//=arr7[0]=1;
//    int num= arrMy(arr7);
   
//    printf("%d\n",arr7[0]);//=arr7[0]=10;
   
//    printf("%d---%lu\n",num,sizeof(arr7));//arr7代表是整个数组.
//    int d=5;
//    add(d);
   
//    printf("%d\n",d);
   
   
//    计算一个数组的长度
     int size=sizeof(arr7)/sizeof(int);
     printf("arr7的长度是=%d\n",size);
     arrMy(arr7,size);
   
   
     return 0;
}


//把数组的第一个元素的值改为10.并且打印这个数组.
int arrMy(int arr[],int size){
   
//这里传递过来的是数组的地址.而地址是指针类型,指针类型在当前环境下占8字节
    arr[0]=10;
   
    for (int i=0; i<size; i++) {
        printf("arr[%d]=%d\n",i,arr[i]);
    }
   
   return sizeof(arr);
   
}

int add(int d){
    return d+10;
}




作者: jianjiao    时间: 2015-9-2 11:28
不过,看得有点乱




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2