二
初识指针
1.内存编号
32位 — 32根地址线—32个比特位的二进制数字表示内存单元(地址) — 2*32个内存单元 bit
63位 — 64根地址线 — 64个比特位的二进制数字表示内存单元(地址) — 2*64个内存单元
2.一个内存单元有一个字节(1byte=8bit)
int main(){
int a = 10;
//a分配四个内存单元(四个字节)
int* pa = &a;
//*说明pa为指针变量
//int表示pa指向的变量为int类型
*pa = 20;
//*解引用操作,通过pa中的地址找到a
return 0;
}
指针就是地址
地址需要32/64个比特位,即4/8个字节,故指针变量(int*、char*……)大小均为4/8个字节
结构体
结构体可以让c语言创造新的类型
struct Stu {
char name[20];
int age;
float score;
};
int main() {
struct Stu s1 = { "Harry Potter", 17, 97.5 };
struct Stu* ps1 = &s1;
printf("1:%s %d %.1f\n", s1.name, s1.age, s1.score);
printf("2:%s %d %.1f\n", (*ps1).name, (*ps1).age, (*ps1).score);
printf("3:%s %d %.1f\n", ps1->name, ps1->age, ps1->score);
return 0;
}