指针

取地址符:&

int main()
{
int a = 10;
int* p = &a;//把取出的a的地址存放在p中
//有一种变量是用来存放地址的-指针变量
printf("%p\n",&a);
*p = 20;//*-解引用操作符
printf("%d\n", *p);
return 0;
}

结构体

复杂对象-结构体-属于自己创造的一种类型

struct xx-创建一个结构体类型定义在主函数上面

格式为

struct xx

{

输入类型

}

#include<string.h>//此为strcpy库函数所要引用的头文件
////复杂对象-结构体-自己创造的一种类型
struct book//创建一个结构体类型
{
char name[20];
short price;
};
int main()
{
//用结构体创造一个该类型的变量
struct book b1 = { "C语言" ,50 };//赋值方法
struct book* pb = &b1;
printf("价格为:%d\n", pb->price);

// printf("书名:%s\n", );
// printf("价格:%d\n", b1.price);
// b1.price = 80;
// printf("修改后的价格为:%d\n", b1.price);
// strcpy(,"C语言程序设计");//string copy-字符串拷贝-属于库函数-需要引用头文件
// printf("新书名为:%s\n", );
return 0;
}

指针pb中的price打印表示为(*pb).price或pb->price

数值的修改可以直接修改 

b1.price = 80;

char数组类型中的数组本意是一串地址不能直接修改,需要使用字符串拷贝函数strcpy(strig copy)-库函数,需要引用头文件#include<string.h>