1、一个变量如用来存放地址的,该变量称为指针变量 int* p=a; //p的类型是int*,变量是 p; // :解引用操作符/间接访问操作符 #include stdio.hint main(){int a=10;//分配了4个字节的空间printf("%p\
1、一个变量如用来存放地址的,该变量称为指针变量
int* p=&a; //p的类型是int*,变量是
p; //:解引用操作符/间接访问操作符
#include <stdio.h>
int main()
{
int a=10;//分配了4个字节的空间
printf("%p\n",&a);
int* p=&a; //这里的*只提示p是一个指针变量,无其他作用
printf("%p\n",p); //
*p=20;//*:指解引用操作符/间接访问操作符
printf("%d\n",a);
return 0;
}
一、结构体
结构体使C语言有能力描述复杂类型,eg:描述学生(学生包含:年龄、学号等多项信息)
人、书——复杂对象——使用结构体来描述,——这个是我们创造出来的一种类型
创建一个结构体类型
#include <stdio.h>
//创建一个结构体类型
struct Book
{
char name[20];//书名定为:C语言程序设计
short price;//价格定为:55
};//;不能缺少,用于结束该类型定义
int main()
{
//利用结构体类型——创建出一个该类型的结构体变量
struct Book b1={"C语言程序设计",55};
printf("书名:%s\n",b1.name);//输出结果:书名:C语言程序设计
printf("价格:%d\n",b1.price);//输出结果:价格:55
b1.price=20;
printf("修改后的价格:%d元\n",b1.price);//输出结果:修改后的价格:20元
return 0;
}
修改结构体中的内容
使用strcpy需要引用string.h头文件
price变量是可以 b1.price=15;直接修改的
name不是变量是数组,无法直接修改,数组名本质是一个地址
使用strcpy修改:--string copy-字符串拷贝-库函数-string.h
#include <stdio.h>
#include <string.h> //使用strcpy需要引用string.h头文件
//创建一个结构体类型
struct Book
{
char name[20];//书名定为:C语言程序设计
short price;//价格定为:55
};
int main()
{
//利用结构体类型——创建出一个该类型的结构体变量
struct Book b1={"C语言程序设计",55};
strcpy(b1.name,"C++");
//strcpy--string copy-字符串拷贝-库函数-string.h
printf("%s\n",b1.name);
return 0;
}
//. :结构体变量.成员
//-> :结构体指针->成员
#include <stdio.h>
//创建一个结构体类型
struct Book
{
char name[20];//书名定为:C语言程序设计
short price;//价格定为:55
};
int main()
{
//利用结构体类型——创建出一个该类型的结构体变量
struct Book b1={"C语言程序设计",55};
struct Book* pb=&b1;
//利用pb打印出书名和价格
printf("%s\n",(*pb).name);
printf("%d\n",(*pb).price);
把上两行可以替换为下两行,利用指针特性
printf("%s\n",pb->name);
printf("%d\n",pb->price);
return 0;
}