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

数据结构复习之C语言指针与结构体

时间:2017-03-18 00:40:27      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:div   表示   复杂   属性   ...   class   变量   个数   struct   

数据结构指针复习:
#include <stdio.h>

void main()
{
    int a[5] = {8, 2, 3, 4, 5};
    
    // a[3] == *(3+a)

    printf("%d\n", *(3+a)); // a[3] 4
    printf("*a其实就是a[0]: %d\n", *a); // 8

    // 地址是连续的
    printf("%p\n", a+1);
    printf("%p\n", a+2);
    printf("%p\n", a+3);
}

一维数组名是个指针常量,它存放的是一维数组第一个元素的地址,它的值不能被改变,
一维数组名指向的是数组的第一个元素的地址。(获取)修改一个数组,就是要把数组的第一个元素的地址和数组的长度传递进去就行了。

#include <stdio.h>

void Show_Array(int *p, int len)
{
    p[0] = -1;
    int i;
    
    for(i = 0; i < len; i++)
    {
        p[i] = p[i] + 1;
        printf("%d\n", p[i]);
    }

}

int main(void)
{
    int a[5] = {1, 2, 3, 4, 5};

    Show_Array(a, 5); // a等价于&a[0], &a[0]本身就是int *类型

    return 0;
}
通过函数修改实参的值:
#include <stdio.h>

void f(int *p)
{
    *p = 99;
}

int main(void)
{
    int i = 10;
    
    f(&i);
    printf("%d\n", i);
    
    return 0;
}


结构体使用概述:
结构体只有属性,没有方法。结构体是类的一个过渡。
为什么会出现结构体?
    为了表示一些复杂的数据,而普通的基本类型无法满足要求。
什么叫结构体?
    结构体是用户根据实际需要自己定义的复合数据类型。
#include <stdio.h>
#include <string.h>

struct Student    // 定义了一个新的数据类型
{
    int sid;
    char name[200];
    int sage;
    
}; // 分号不能省

int main(void)
{
    // 定义一个数据类型是struct Student的变量st
    struct Student st = {1000, "zhangsan", 20};
    printf("%d %s %d\n", st.sid, st.name, st.sage);
    
    st.sid = 99;
    strcpy(st.name, "lisi");
    st.sage = 22;
    printf("%d %s %d\n", st.sid, st.name, st.sage);
    
    return 0;
}

 

 

 未完待续......

数据结构复习之C语言指针与结构体

标签:div   表示   复杂   属性   ...   class   变量   个数   struct   

原文地址:http://www.cnblogs.com/lqcdsns/p/6569186.html

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