C语言从青铜到王者初识指针
Posted AI_ELF
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言从青铜到王者初识指针相关的知识,希望对你有一定的参考价值。
本章重点
1.内存
2.指针变量
3.指针的使用
指针变量的大小
内存
1.定义
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的 。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
2.内存单元的地址
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址
解释
内存相当于空间,就好比现实生活中,如果我们要想找到某个东西,就要根据地址来找到,在计算机中要想访问某个东西,这时,内存就起到了关键的作用,因此内存相当于地址,也相当于空间。
内存是怎么编号的
比如 计算机在32位下时,一共有32根地址线(物理线),通电时会将电信号转化为数字信号(即1和0),这是产生了1和0组成的二进制序列。
从00000000000000000000000000000000到11111111111111111111111111111111一共有2**32个,然而这些二进制序列都可作为内存单元的编号,即内存单元的地址。
一个内存单元是多大空间
一个内存单元为一个字节
指针变量
指针变量是用来存储地址的(指针就是地址)
#include<stdio.h>
int main()
{
int a = 10;//a在内存中分配空间的——4个字节
printf("%p\\n",&a);
return 0;
}
#include<stdio.h>
int main()
{
int a = 10;//a在内存中分配空间的——4个字节
printf("%p\\n",&a);//%p专门用来打印地址的
int* pa = &a;//pa是用来存放地址的,在C语言中叫指针变量
//*说明pa是指针变量
//int说明pa指向的对象是int类型的
char ch = 'w';
char* pc = &ch;
//同理pc是指针变量
return 0;
}
指针的使用
int main()
{
int a = 10;
int* pa = &a;
*pa = 20; //*解引用操作,*pa就是通过pa里的地址,找到a
printf("%d", a);
return 0;
}
指针变量的大小
int main()
{
printf("%d\\n", sizeof(char*));
printf("%d\\n", sizeof(short*));
printf("%d\\n", sizeof(int*));
printf("%d\\n", sizeof(long*));
printf("%d\\n", sizeof(long long*));
printf("%d\\n", sizeof(float*));
printf("%d\\n", sizeof(double*));
return 0;
}
在32位机器下(即×86)
指针的大小是相同的!
指针需要多大空间,取决于地址的存储需要多大空间
32位机器需要32位bit,4个byte
64位机器需要64位bit,8个byte
以上是关于C语言从青铜到王者初识指针的主要内容,如果未能解决你的问题,请参考以下文章