C语言中指针初始化和常规运算
1. 指针初始化注意须知
<1>指针变量和普通变量一样,外部或者静态指针变量若未初始化,则被自动初始化为NULL,它的值为0(ASCII字符NULL的代码)。
<2>可以用已初始化的指针变量初始化另一个指针变量。例如:int a=3; int *p=&a; int *s =p;
<3>可以将一个指针变量初始化为空指针,但是,不能用常量作为指针变量的初始值。
错误的使用:int *p = 1000;
正确的使用:int *p = NULL; p=2000;
2. void *类型的指针(空指针类型)和空指针
void *类型的指针表示指向的类型为空或不确定,使用时,经常和强制类型转换一起使用。该类型的指针指向的类型是 void,不管其中的值为什么,都能进行存储。
空指针是指:不管其指向的类型是什么,其值都是为NULL(或者0)。
3. 指针的加减运算
<1>指针的加减整数运算
设p指向某数组的第一个元素,那么p+n则表示指向下标为n的元素。注意是小标为n的元素,数组的第一个元素下标为0。不要被迷糊了。不管指针变量指向何种数据类型,当指针加(减)一个整数n,其结果就是指针向地址后(前)移动n*sizeof(指针的数据类型)个字节的距离。
<2>指针间相减运算
当p和s为数组指针地方时候,p-s的绝对值表示它们所指向的数据之间元素的个数,如果结果为1,则代表p和s所指向的两个元素是相邻的。
<3>指针的关系运算
前提是两个指针指向的是同一个对象,比如同一个数组。注意:只有相同类型的指针才能进行比较。
运算表达式 | 如果为真 |
---|---|
p<s | p所指向的元素在s所指向的元素之后 |
p>s | p所指向的元素在s所指向的元素之前 |
p==s | p和s指向的是同一个元素 |
p<=s | p所指向的元素在s所指向的元素之后或等于s所指向的元素 |
p>s | p所指向的元素在s所指向的元素之前或等于s所指向的元素 |
C语言中指针初始化和常规运算相关推荐
- c语言中减号算一个字符吗,C语言中指针的加减运算
char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; printf(&q ...
- c语言字符串加减_C语言中指针的介绍
C语言中指针的介绍 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构:能很方便地使用数组和字符串: 并能象汇编语言一样处理内存地址,从而编 ...
- c语言中的指针语法,C语言中指针的用法介绍
C语言中指针的用法介绍 for(int i=0;i { num+=*s;s++; } return num; ) 这个例子中的函数 fun统计一个字符串中各个字符的 ASCII 码值之和.前面说了,数 ...
- c语言中指针中 - 和 。的区别?
c语言中指针中 -> 和 .的区别? 例子1:比如有如下结构 typedef strut node{ int data; strut node * next; } ListNode; Lis ...
- C语言中数据的表现形式及其运算
C语言中数据的表现形式及其运算 1. 常量和变量 1.1 常量 在程序运行过程中,其值不能被改变的量称为常量.如1000,0.0036,0.0025是常量.数值常量就是数学中的常量. (1)整型常量. ...
- C语言指针使用过程中 不需要清零,C语言中指针使用常见问题及解决办法.pdf
. - - 自 · - j 1- j w - m - - [ - № 实用第一 智慧密集 C语 i觅 及 捧法l j||? l .. 一 摘 要:讲述 了在 c语言中指针使用时所 出现的一些常见问题 ...
- 初学者对C语言中指针的爱恨情仇
C语言中指针和数组的爱恨情仇 文章目录 C语言中指针和数组的爱恨情仇 一.前言 二.为什么学指针 三.说明 四.跟我一起学 (一)C语言中的*和& 1.C语言中为什么存在&和* 2.& ...
- c语言中*用于指针,关于C语言中指针的理解
关于c语言中指针的一些理解 这几天在看任哲老师编写的嵌入式实时操作系统uC/OS原理与应用一书,第二章讲到指针的用法,我发现自己有些地方有疑问,就重新看了关于c指针的知识.同时也对指针有了一定的理解. ...
- C语言中指针的地址和内容
参考:C语言中指针的地址和内容 作者:wallying 发布时间:2018-10-18 09:47:54 网址:https://blog.csdn.net/qq_36631580/article/de ...
最新文章
- CSS(2 )-- CSS样式大全
- 轻松应对IDC机房带宽突然暴涨问题
- HTML css嵌套的一个例子
- perl学习笔记(8)
- (王道408考研操作系统)第二章进程管理-第三节1:进程同步与互斥的基本概念
- CASE WHEN 小结
- angular乱码_号外!Angular 中文文档已同步翻译至 7.0
- 欠阿里云 1 分钱,数据被删除
- ApiDoc 一键生成注释
- Python写excel练习
- Adobe Photoshop CC已停止工作重装显卡驱动解决方法
- python中如何显示特殊的单位符号
- 怎样把计算机添加到网络打印机,怎么将电脑打印机设置成连接网络打印机
- Cypress前端测试左移分享
- 王师傅c语言游戏,炉石王师傅斗鱼首播!旭旭宝宝都送了10发超火,只有他没来...
- 什么是DBMS以及DBMS的分类
- bootstrap轮播速度_BootStrap:轮播插件
- SpringSecurityOauth2授权模式与使用RSA非对称加密方式生成公钥私钥
- C 常數0L,0LL,0UL,0.0f,0.0L
- 做为码农,应该被熟知和关注的技术站点,再也不用担心技术漏洞