2021.1.17——指针和结构体的初步认识

指针的初步认识

int main()
{
        int a = 0;
        int* p= &a;
        printf("%d",*p);
        return 0;
}

初步接触指针,感觉并没有之前听说的那么恐怖,可能只是我刚刚接触皮毛而已,以后接触到深层次的东西才会感觉到,加倍努力吧。
首先我们要知道上述代码中表达的都是什么意思,int a =0很明显是将“0”赋值给整型变量a的过程;我们要明白p是一个指针变量,是专门用来存放地址的一种变量。
p就是找到p所指地址的内容
p变量来存放a的地址(&a)
告诉我们p是一个指针变量,int告诉我们p所指地址的内容是一个整型类型
指针变量的地址长度不是根据所指向内容的类型而决定的,而是编译环境决定的,32位为4字节,64位环境为8字节;

结构体的初步认识
我们都知道代码是用来构建现实世界一种途径,但是现实世界中的实体并不是一个单一属性的,每一个实体都是一个复杂对象。举个例子,当我们要描述一个人的时候,要有名字,身高,年龄,身份证号的信息,而这个时候就不能单纯的使用数组或者定义来实现,就要使用到结构体来创造一个类型出来。
使用方法:

struct Book //创造一个结构体类型
{
   char name[20];
   short price;
}

这样就简单的构造出来了一个Book类型,而在函数中使用时还要定义变量才能使用,struct Book book1 = {"C语言初步认识",55};
这样我们就说明了一本命为“C语言初步认识”且价格为55元的书定义出来了。
那么如果我们只是单纯的想知道书名应该怎么操作呢?
第一个方法
这个时候就要用到我们的操作符“.”,它可以访问我们的book1的成员,访问name成员:book.name;访问price成员:book.price;
第二个方法
为book1创建指针,然后使用操作符“->”完成,使用方法:结构体指针变量->成员名。注意:创建book1的指针类型为struct Book*

如何修改结构体
修改结构体成员中的整型变量时可以直接赋值覆盖前面的值即可,
int book1.price = 36;就可以了
而修改结构体成员中的字符串类型时,就要使用到函数strcpy(),它要引入头文件string.h才能使用。
使用方法:strcpy(book1.name,"C++");

好了,2021年1月17日日就学了这么一点知识,但我觉得足够我这样的小白理解的了!

猜你喜欢

转载自blog.51cto.com/15083094/2593907