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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习心得------C语言复杂数据类型相关的知识,希望对你有一定的参考价值。

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

     在学习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语言复杂数据类型的主要内容,如果未能解决你的问题,请参考以下文章

C语言学习日记5

201671010105 2016-2017-2《Java程序设计》第三章学习心得

C 语言内存四区 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )

学习c语言函数这一章的心得,和方法技巧。

c语言实验报告心得

C 语言指针数据类型 ( 指针步长 | 复杂指针阅读技巧 )