电商专业学习嵌入式软件开发第二十一天

  • 预科第十天

今天老师讲的是指针,老师在讲的时候单个例子都能明白,但是一旦不讲就感觉脑袋发懵,不清楚哪儿有问题。好像是设定好的程序,只要一到数组指针函数这一块儿就感觉脑袋内存不够用,总会当机。

25.指针

1>指针:实际上就是地址
2>怎么定义指针:
下面就需要定义一个变量来存储整型变量的地址,

    /*先算*符号,表明p不是一个普通(int,char,float,double)的变量,而是一个地址变量,再算前面的int,代表将来这个p是存储的int类型变量的地址,而不是其他类型变量的地址
     */
    int i=1;//定义整型变量,就应该在内存当中分配好了空间,地址就应该固定不变
    int *p=&i;//int *p=0xfff
    //*的用法:*变量名:*是去取地址所对应的存储单元里面的值
    
    printf("i=%d\n",*p);
    *p=9;//*(&i)=====>i=9
    printf("i=%d\n",i);
    printf("%p\n",&i);
    printf("%p\n",p);
    printf("%p\n",&p);

const:常量

    /*const修饰变量,代表将来这个变量将来的只读,不能被更改,
     注意点:const修饰的变量一定要在初始化的时候给定初值,因为将来不能被再次赋值
     */
    const int  a=7;
    //int const a=7;
    printf("%d",a);

    int a=7;
     const int *p=&a;const写在前面代表将来不能通过p去间接的更改a的值
     int const *p=&a;const写在int后面代表将来不能通过p去间接的更改a的值
     int  * const p=&a;const写在*后面代表将来p这个变量的值只读
     const int * const p=&a;const这样写代表啥都不能改

多级指针
二级指针:二级指针里面的值就是一级地址变量的地址

    int a;
    int *p=&a; //一级指针
    int **p1=&p; //二级指针
    int ***p2=&p1; //三级指针
#include<stdio.h>
int main()
{
    int a,b;
    int *p=&a;
    int *q=&a;
    if(p==q)
    {
        printf("====\n");
    }
    return 0;
}

struct是创造出来一个特殊的类型,系统中没有这个类型
格式:
struct 结构体名称
{
结构体的相关属性;
};

// 学生:分数、学号
    struct Student
    {
        float score;
        int num;
    };
    //数据类型+变量名;
    //变量的定义,.在C语言当中相当于‘的’
    struct Student stu;
    //3.初始化:'.'
    stu.score=18.7;
    stu.num=9; 
    //1.初始化:
    struct Student stu1={12.5,1};
    //2.初始化:
    struct Student stu2=stu1;
    printf("stu2={score=%f,num=%d}\n",stu2.score,stu2.num);
struct Birthday
    {
        int year;
        int month;
        int day;
    };
    struct Person
    {
        char sex;
        int age;
        struct Birthday birthday;
    };
    struct Person p1={'m',20,{2000,1,1}};
    struct Person p2;
    p2.age=18;
    p2.sex='f';
    p2.birthday.year=1990;
    p2.birthday.month=1;
    p2.birthday.day=1;
    struct Person p3=p2;

字节对齐
1>如果是基本数据类型(int,char,float,double);第一个成员属性从偏移量为0处分配,以后的成员属性是从他本身字节数的最小倍数开始分配
2>如果不是基本数据类型,是集合类型,数组,结构体,比如里面有一个成员属性是结构体类型,struct X{ int a;char ch;double f;};是从他的成员属性里面最大的字节数的最小倍数开始分配

3>最后收尾的时候,整个字节数要是最大成员属性字节数的最小倍数

/*
     int:4
     char:1
     float:4
     double:8
     */
    struct A
    {
        char ch;//0  char第一个成员属性从偏移量为0处分配,char为1字节,记为0;
        int m;//4--7  int从本身字节数的最小倍数开始;
        char ch1;//8  char类型只有1个字节,+1;
        double i;//16--23 double从本身字节数的最小倍数开始,从9开始,找8的最小倍数;
    };//24  从0-23有24个字节
    printf("%ld\n",sizeof(struct A));//struct A为24字节,32位机器得出的是20;
    struct B
    {
        int i;//0--3  int第一个成员属性从偏移量为0处分配,int类型4字节,0-3为4字节;
        struct A a;//8--31  从struct A的成员属性里面最大的字节数double的最小倍数开始,struct A有24字节,double有8字节,从3开始找8的倍数,数够24位;
        char ch;//32  char类型只有1个字节,+1;
        float m;//36--39   float从本身字节数的最小倍数开始;从33开始找4的倍数,float有4字节;
    };
    printf("%ld\n",sizeof(struct B));//struct B为40字节,32位机器得出的是32;
面试时遇到类似题目需要问清楚是在32位还是64位机器上运行。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容