想要搞明白指针,就要从基础下手。
指针概念
要先了解什么是指针?
它是一种变量类型,用来存储其他变量的内存地址。通过指针,我们可以间接地访问一个变量,修改它的值,或者将其作为参数传递给函数。通过指针,程序可以直接操作内存,这样就能够更有效地管理内存和数据。指针还能够被用来构建复杂的数据结构,如链表、树等。虽然指针可能会让程序变得更加复杂,但是它也提供了更高的灵活性和效率,因此是程序员需要掌握的重要概念之一。
指针类型
比较常见的指针类型有这几种:
整型指针:int * p;
字符指针:char * p;
浮点型指针:double *p;
短整型指针:short * p;
无类型指针(万能指针):void * p;
指针本质
指针的本质仅仅只是一个地址而已,所占内存大小和整型一样,随系统不同而不同,虽然有很多类型的指针,类型只是决定了在操作指针时在内存如何移动,或者说在内存中如何访问
printf("%d", sizeof(char*));
printf("%d", sizeof(int*));
printf("%d", sizeof(short*));
printf("%d", sizeof(void*));
sizeof函数可以让我们看到指定内容所占内存的大小,单位是字节,不难发现他们的结果是一样的
没错就是你所操作系统的一个地址的大小
指针类型只决定了在指针运算时移动的字节数!!!
指针类型只决定了在指针运算时移动的字节数!!!
指针类型只决定了在指针运算时移动的字节数!!!
指针移动
上代码解释!
int main()
{
int arr[10] = { 0 };
char ch[10] = { 0 };
//指针的类型
int *pa = arr;
char *pb = ch;
printf("%p\n", pa); // 98
printf("%p\n", pa