指针
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地
址。
(老师的笔记非常详细)
1.内存:
//查询a在内存中的地址
int main()
{
int a = 10;//在内存里申请4个字节存储10这个数字
printf("%p\n", &a);
return 0;
}
//将地址存起来:
int main()//整型举例:
{
int a = 10;//我在内存创建了一个变量为a,地址编号为XXXXX里面放了一个10
int* p = &a;//取地址(int*是p的类型)p为指针变量;代表p变量里存的是a的地址
//有一种变量是用来存放地址的-指针变量
//创建一个变量p来存a的地址编号XXXXX
printf("%p\n", &a);
printf("%p\n", p);
//*-解引用操作符
*p = 20;//*p其实就是等于a,*p=20就是把20放到a里面去(把10改成了20)
printf("%d\n", p);
return 0;
}
int main()//字符举例:
{
char ch = 'w';//ch为字符变量
char* pc=&ch;//&ch为取出ch字符的地址,char*为pc的类型 pc存了ch的地址
*pc = 'a';//将ch里的字符w修改为a
printf("%c\n", ch);
return 0;
}//打印出字符a
2.指针变量的大小
//结论:
//在32位平台中指针大小为4个字节,在64位平台中指针大小为8个字节
//举例:
int main()
{
char ch = 'w';
char* pc = &ch;
printf("%d\n", sizeof(pc));
return 0;
}
int main()//输出每个类型指针变量大小
{
printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(short*));
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(double*));
return 0;
}
浅尝辄止。。。。