指针
指针的大小是相同的,因为指针是用来地址的,指针需要多大空间,取决于地址的存储需要多大空间
32位-32bite-4byte 指针大小在32位平台是4字节大小
64位-64bite-8byte 指针大小在64位平台是8字节大小
内存
为了有效使用内存,就把内存划分成一个个小的内存单元,每个内存单元大小一个字节,为了有效访问,给每个单元编号,称为内存单元的地址
结构体
使C语言有能力描述复杂类型
如描述物品,包含“名称+大小+颜色”这几项信息,就要用结构体
工程
指针
%p专门用来打印地址
pa用来存放地址,叫指针变量
*说明pa是指针变量
int说明pa的执行对象是int型
如果是char型就如下
char ch='w';
char*pc=&ch;
#include<stdio.h>
int main()
{
int a=10;
printf("%p\n",&a);
int*pa=&a;
return 0;
}
*pa=20;为解引用操作,*pa就是通过pa里地址找到a
#include<stdio.h>
int main()
{
int a=10;
int*pa=&a;
*pa=20;
printf("%p\n",&a);
return 0;
}
结构体
.为结构成员访问操作符
->(是箭头)操作符
%lf为打印双精度浮点数
#include<stdio.h>
struct Stu
{
char name[20];
int age;
double score;
};
struct Book
{
char name[20];
float price;
char id[15];
};
int main()
{
struct Stu s={"John",18,39.9};//结构体的创建和初始化
printf("%s %d %lf\n",s.name,s.age,s.score);//结构体变量.成员变量
struct Stu * ps=&s;
printf("2:%s %d %lf\n",(*ps).name,(*ps).age,(*ps).score);
printf("3:%s %d %lf\n",ps->name,ps->age,ps->score);//结构体指针->变量名
return 0;