重拾C语言(2)

37 阅读1分钟

指针

image.png

int main() {
        int a = 10;//向内存申请4个字节的空间
        int* p = &a;//取地址
        *p = 20;//* -解引用操作符

        printf("%p\n", &a);

        printf("%p\n", p);

        return 0;  
}

image.png

电脑 8G---内存 500G---硬盘大小 image.png

一个内存单元是多大 每根地址线,1/0 32bit 1/0 内存编号,内存的地址

int main() {
        printf("%d\n", sizeof(char*));
        printf("%d\n", sizeof(int*));
        printf("%d\n", sizeof(short*));
        printf("%d\n", sizeof(double*));

        return 0;  
}

image.png

指针类型的变量的大小和电脑多少位有关系,64位就是8字节,32位就是4字节。

结构体 //结构体 //char int double //书-复杂对象 //名字+身高+年龄+身份证号码 //书名+作者+出版社+定价+书号 //复杂对象 --结构体 -我们自己创造出来的一种类型

   struct Book {
            char name[20];
            short price;
    };


int main() {
        struct Book b1 = { "C语言程序设计",55 };
        printf("书名:%s\n", b1.name);
        printf("价格:%d\n", b1.price);

        return 0;  
}






    struct Book {
        char name[20];
        short price;
};


int main() {
        struct Book b1 = { "C语言程序设计",55 };
        printf("书名:%s\n", b1.name);
        struct Book* pb = &b1;
        //利用pb打印出我的书名和价格;
        //.		结构体变量.成员
        //->	结构体指针->成员
        printf("%s\n", pb->name);
        printf("%s\n", (*pb).name);

        return 0;  
}




//printf("%s\n", pb->name);
//printf("%s\n", (*pb).name);
strcpy(b1.name, "C++");//字符串拷贝-库函数
printf("%s\n", b1.name);