指针可是数据结构的基础,其内容及重要又繁多,之前没有时间整理出来,现在放假了怎么说也要写一个,既是对前面的总结和梳理,也可以用来以后的查找知识,ok,废话不多,直接启动。
指针是C语言中的一种特殊数据类型,它存储了一个变量的内存地址。通过指针,我们可以直接访问和修改该内存地址上存储的值。指针变量本身也有自己的存储地址,而指向指针变量的存储地址就被称为指针的指针,即二级指针。多级指针的定义就是定义时使用多个"*"号。
我们知道你的代码中的变量常量都是放在内存中的,我们电脑大多是4g或8g内存,这些内存空间被平均分了许多份,每份大小是1个字节
下面是常见的内存大小单位以及换算
我们可以把整个内存当成一个酒店,每个空间当作一个房间,那么每个房间的门牌号就是地址,我把地址告诉你了,你自然就能找到那个房间了。而在C语言中地址就是指针。
我们知道你电脑cpu和内存要互相协同?作的。所谓的协同,?少相互之间要能够进?数据传递。那么如何通信呢?答案很简单,?"线"连起来,我们今天关??组线,叫做地址总线。
#include<stdio.h>
int main()
{
?? ?int a = 10;
?? ?int* p = &a;
?? ?return 0;
}
x会将a的4个字节全部改为0,y只是将b的第?个字节改为0。
int main()
{
?? ?int a = 10;
?? ?void* p = &a;
?? ?*p = 0;
?? ?p++;
?? ?return 0;
}
int main()
{
?? ?int a = 10;
?? ?const int* p = &a;
?? ?*p = 5;
?? ?return 0;
}
int main()
{
?? ?int a = 10;
?? ?int b = 5;
?? ? int* const p = &a;
?? ? int** b = &p;
?? ? int*x = &b;
?? ? b = &x;
?? ?return 0;
}
//指针的关系运算
#include <stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int *p = &arr[0];
int i = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
while(p<arr+sz) //指针的???较
{
printf("%d ", *p);
p++;
}
return 0;
}
//指针的关系运算
#include <stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int *p = &arr[0];
int i = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
while(p<arr+sz) //指针的???较
{
printf("%d ", *p);
p++;
}
return 0;
}
# include <stdio.h>文章来源:https://blog.csdn.net/2301_79551553/article/details/135616081
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!