码迷,mamicode.com
首页 > 编程语言 > 详细

学习心得------C语言复杂数据类型

时间:2016-04-06 23:07:02      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

---恢复内容开始---

     在学习c语言的过程中,最复杂的知识便是标题中的复杂数据类型了,因为包括了数组,字符串,指针等多种数据类型,在这一环节中,我们不免要接触到内存,分析出该数据类型的在内存中的存储方法,就可以比较明确的认识到该类型的运行原理,下面就分析一下我在学习该视频中的学习心得吧。

一、数组


1.数组,从字面上看,就是一组数据的意思,是的,数组的作用就是用来存储一组数据的。数组的特点是只能存放同一类型的数据,比如int 比如double。

2.数组的格式,元素类型 数组名[元素个数]  比如 int age[3];

3.数组的简单使用,数组的初始化为:int age[3]={0,1,2}; 值得注意的是,数组的下标是从0开始而不是1,所以数组的最后一个元素的下标永远是数组元素-1。

 1 #include<studio.h>
 2 int main()
 3 {
 4         int age[3]={1,2,3};
 5        int age[3]={1,2};// 可以只赋值前面部分元素
 6        int age[]={1,2,3};//可以不写清元素个数,系统自动根据元素个数定义
 7       int age[3]={[1]=1,[2]=2};  //这是直接给第2和3个元素赋值
 8  //这几种都是正确写法 
 9 
10    /*常见错误
11         int a[];
12        int[3] a;
13         int a[b];
14       a = {10, 11};
15       a[3] = {10,9,8,};
16 
17 
18 */
19           return 0;  
20 }

4.(1)数组的内存分析,数组分配的空间大小是根据数据类型所占据的字节数*元素个数来决定的。

(2)存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)

(3)数组名就是数组的地址

(4)如果计算数组元素的个数:可以用sizeof(数组名)/sizeof(数组元素的数据类型)即可得到元素个数

5数组作为函数传递时,因为是地址的传递,所以与以前的基本数据类型的值传递有很大区别,我们可以通过下面的代码来认识一下。

 1 void change(int array[])
 2 {
 3     printf("array==%p\n",array);  //输出数组的地址不用&,数组名就代表数组的地址
 4     array[0]=100;
 5 }
 6 
 7 void change2(int n)
 8 {
 9     n= 100;
10 }
11 
12 int main
13 {
14       int age[5]={1,2,3,4,5};
15      int a=10;
16      change(age);
17      change2(a);
18     printf("age[0]==d%",age[0]);//此处输出100,因为数组的传递是地址传递,函数内更改的数据值相当于更改了该地址的数据值
19     printf("a==d%",a);//此处输出为10,基本数据类型的数据传递村纯粹是值传递。
20 
21         return 0;
22 }

下面是一个关于数组的综合练习例子,设计一个函数,找出整型数组的最小值

// 设计一个函数,找出整型数组元素的最小值
#include <stdio.h>
/*
 * 定义函数需要两个参数,一个是数组,一个是数组长度
 */
int minOfArray (int array[], int length)
{
    // 定义一个变量存储最小值(默认是首元素)
    int min = array[0];
    // 遍历所有元素,找出最小值
    for(int i = 1; i<length; i++)
    {      
        if(array[i] < min) // 判断当前元素是否小于min
        {
            min = array[i];// 如果当前元素小于min,就用当前元素覆盖min。
        }       
    }
    // 返回最小值
    return min;
}
int main()
{
    // 整型的数组
    int ages[] = {43, 12, 103, 69, 76, 25, 16};   
    int len = sizeof(ages)/sizeof(int); // 计算数组长度   
    int min = minOfArray(ages, len);// 调用minOfArray函数  
    printf("最小值是:%d\n", min); // 输出最小值  
    return 0;
}

 

 

---恢复内容结束---

学习心得------C语言复杂数据类型

标签:

原文地址:http://www.cnblogs.com/yukinoshita/p/5361349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!