?1.指针
了解指针首先要了解内存:?
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地 址。 ?
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 10;//在内存中要分配空间的-4个字节
printf("%p\n",&a);//第一个字节的地址,%p是专门用来打印地址的
int*pa = &a;//pa是用来存放地址的,在c语言中pa叫指针变量
//*表示pa是指针变量
//int说明pa执行的变量是int类型的
char ch = 'w';
char*pc=&ch;
return 0;
}
指针类型推广:
int main()
{
int a = 10;
int*pa = &a;
*pa =20;//*解引用操作 *pa就是通过pa里的地址找到a
printf("%d\n", a);
return 0;
}
2.指针变量的大小:
?无论是什么类型,指针大小都是四个字节
那么为什么指针大小是相同的呢?首先指针是用来存放地址的,指针需要多大空间,取决于地址存储需要多大空间
32位——32bit——4byte
64位——64bit——8byte
3.结构体.
结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。 比如描述学生,学生包含:名字+年龄+性别+学号这几项信息。 这里只能使用结构体来描述了。 ?
//结构体可以让c语言创建新的类型出来
//创建一个学生
struct stu
{
char name[20];//成员变量
int age;//成员变量
double score;//成员变量
};
//创建一个书类型
struct book
{
char name[20];//成员变量
float price;//成员变量
char id[30];//成员变量
};
int main()
{
struct stu s = { "张三",20,58 };//结构体的创建和初始化
printf("%s %d %lf", s.name, s.age, s.score);//结构体变量.成员变量
return 0;
}
拓展部分
int main()
{
struct stu s = { "张三",20,58 };//结构体的创建和初始化
printf("1:%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;
}
三次打印结果:
?到这里c语言的初识部分就结束啦,下面就开始深入学习了。
|