C语言学习笔记 lesson15&16 函数2指针的偏移
来源:互联网 发布:东莞cnc编程学徒招聘 编辑:程序博客网 时间:2024/05/20 13:40
指针的偏移
int main()
{
int num = 100;
int *pnum = #
printf("%p\n", pnum); 00E2FBB4
printf("%d\n", *pnum); 取值时,根据pnum里存储的值来读取当前指定位置;找到指定位置后,根据指针类型,去读取对应数据的长度。做存储时,先找到 pnum的地址,取出pnum中的值,解引用,根据当前记录的长度,往里面写入值。
pnum++; 增加的是指针的长度
printf("%p\n", pnum); 00E2FBB8 int 型长度增加4
char *pchar = #
printf("%p\n", pchar); 00E2FBB4 指向num的地址
printf("%d\n", *pchar);
printf("%c\n", *pchar);
pchar++;printf("%p\n", pchar); 00E2FBB5 char型长度增加1
double *pdouble = #
printf("%p\n", pnum);
00E2FBB4printf("%d\n", *pdouble);
printf("%c\n", *pdouble);
printf("%lf\n", *pdouble); 数据会出错,不能以%lf来解析
pdouble++;
printf("%p\n", pdouble); 00E2FBBC double型长度增加8
return 0 ;}
注: 使用指针时,不能使用与数据类型不同的指针。以上例子只用于了访问指针内存储的值。如果进行修改,则会发生错误。使用char型指向int型数据,char型的指针大小比int型的小,会修改实际数据的值。而如果使用double型指向int 型的数据,double型指针大小比int型的大,会改写实际数据之外的值。
数组也是指针的一种,数组将类型相同的数据集中在一起,数组名指向集合的首地址,通过指针偏移的方式访问数组。操作数组使用的下标,其实就是使用指针名代表的地址加上对应的下标,通过指针偏移的方式指向待访问的数据地址。来读取和改写值。
数组存储字符串:
字符串是由\0表示结尾
char string[9]="123456789";
printf("%s",string); 在字符串后会打印出一些乱码,程序运行到需要取字符串的时候,会从当前指定的指针地址后开始读取,一直遇到"\0"才会停止读取,没有会导致乱码。
char *pstring = "123456789"; 字符串辨别长度根据"\0"来判断是否是结尾;
char string[10]="123456789"; 将空间分配在栈中,可读可写
char *pstring = "123456789"; 编译器将字符串放在常量区
*(pstring+1='A' ; 会发生错误
- C语言学习笔记 lesson15&16 函数2指针的偏移
- c语言学习笔记之函数指针和指针函数
- [MFC学习笔记]--lesson15多线程与聊天室程序的设计
- C语言的学习笔记2-函数
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- C语言学习笔记--------伊能C语言学习笔记----使用指针来解决函数的副本机制
- c语言二维数组的下标运算与指针偏移
- C语言-指针的基础学习笔记(2)
- C语言学习笔记(16指针)
- C语言--函数指针学习
- c语言学习笔记31之函数指针
- C语言高级专题学习笔记-函数指针实战
- C语言深度剖析学习笔记-指针、数组、内存、函数
- C语言指针学习:指向函数的指针
- iOS开发学习笔记 2-9 C语言部分 内存分配函数 函数指针 指针函数 void*
- C语言指针学习笔记:指向结构体的指针
- c语言指针学习笔记
- KVM学习1--安装编译测试kvm模块
- 一张图让你搞定linux中权限中rwx的意思
- JavaSE-位操作
- 一些音视频通话方案架构
- Python自定义豆瓣电影种类,排行,点评的爬取与存储(高阶上)
- C语言学习笔记 lesson15&16 函数2指针的偏移
- 嵌入式系统学习(八)-通过sysfs(/sys/class/gpio)操作GPIO
- 优先级队列
- 去掉Sublime Text 3烦人的更新新版本提醒
- codeforces 361C
- Leetcode 120. Triangle
- android 打造Dialog式的Activity
- svn常用操作
- 课后作业银行ATM系统模拟参考答案