06深入理解C指针之---指针操作和比较

  该系列文章源于《深入理解C指针》的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教。

  指针作为一种特殊类型的变量,必须遵守C语言中变量先声明后使用的原则。本节内容中指针的操作主要包括指针的声明、指针值的获取、指针的解引、指针的打印、指针的阅读及其他内容。

一、指针的操作:

  1、指针的声明,切记指针是一种特殊变量,这种变量中没有直接存储数值,存储的数值是另外变量的地址。

    其中,看代码第6、7、8行,都是指针变量的声明,无论*的位置如何,靠近int还是变量名,还是哪个都不靠近,都可以表示,根据自己的习惯坚持即可,个人建议靠近变量名好。

  2、地址操作符,使用&获取变量地址的符号,常用来为指针变量赋值。

    其中、代码的第6、7、9行,都是地址操作符的应用

  3、指针的打印,使用%p占位符即可打印指针变量的值,另外变量的地址。

    其中、代码的第12、13、14、19、21、23行都是打印指针值的应用

  4、指针的解引用,通过指针获取指针值对应的变量的值。

    其中、代码的第12、13、14、19、21、23行都是指针解引用的应用。

复制代码
 1 #include <stdio.h>
 2
 3 int main(int argc, char **argv)
 4 {
 5     int iVar = 19;
 6     int *ptrVar1 = &iVar;
 7     int* ptrVar2 = &iVar;
 8     int * ptrVar3 = NULL;
 9     ptrVar3 = &iVar;
10
11     printf("the iVar is %d and address is %p\n", iVar, &iVar);
12     printf("the ptrVar1 is %p and *ptrVar1 is %d\n", ptrVar1, *ptrVar1);
13     printf("the ptrVar2 is %p and *ptrVar2 is %d\n", ptrVar2, *ptrVar2);
14     printf("the ptrVar3 is %p and *ptrVar3 is %d\n", ptrVar3, *ptrVar3);
15
16     iVar++;
17     printf("the iVar is %d and address is %p\n", iVar, &iVar);
18     (*ptrVar1)++;
19     printf("the ptrVar1 is %p and *ptrVar1 is %d\n", ptrVar1, *ptrVar1);
20     (*ptrVar2)++;
21     printf("the ptrVar2 is %p and *ptrVar2 is %d\n", ptrVar2, *ptrVar2);
22     (*ptrVar3)++;
23     printf("the ptrVar3 is %p and *ptrVar3 is %d\n", ptrVar3, *ptrVar3);
24
25     return 0;
26 }
复制代码

二、指针的补充:

  1、null在C语言中充分体现了C语言的逻辑混乱,C语言中null的出现主要和指针变量有关。

    null宏定义中被定义为: #define NULL  ((void *)0)这种定义一般在stddef.h、stdlib.h和stdio.h中出现;

    null可以用来初始化指针变量,表示指针变量指向空,也可以直接将指针变量赋值为零也可;

    null可以在字符中表示全为0的字节,表示不包含任何内容;

    null可以表示字符串表示没有任何内容;

    null语句表示只有一个;没有任何内容的语句

  2、void指针,通用指针,可以存放任何的数据类型的指针,void指针与char指针的存储和对其方式相同,void指针在使用前一般需要先强制转换下    

posted @   叕叒双又  阅读(339)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示