交换友情链接平台鞍山做网站优化公司
news/
2025/9/27 23:04:33/
文章来源:
交换友情链接平台,鞍山做网站优化公司,网站建设费怎样摊销,wordpress不支持中文指针
指针概念 指针保存地址#xff0c;地址是字节的编号 指针类型和保存的地址类型要一直 使用时注意#xff0c;把地址转换为变量的格式来看 int a[3]; a转为a[0]
指针的大小 64bit 固定8字节#xff0c; 32bit 固定4字节
指针…指针
指针概念 指针保存地址地址是字节的编号 指针类型和保存的地址类型要一直 使用时注意把地址转换为变量的格式来看 int a[3]; a转为a[0]
指针的大小 64bit 固定8字节 32bit 固定4字节
指针的定义 格式数据类型 变量名 指针的标识 int a; int a[3]; 先写单个变量变量名后加[]和元素个数 int *a; 先写单个变量在变量名后面加*表示指向该空间类型的指针 空间类型地址类型数据类型
多级指针 指针的初始化 指针不初始化--野指针应避免野指针的出现 int *pNULL;
int a5;
int *pa;//初始化直接指向变量地址
char *p “hello”;
char a[10] “hello”;
指针的使用 * 乘法 双目 1*2 * 解指针/解地址 单目 *地址 取地址 同空间变量获取空间的地址 * 解地址 通过空间地址找到空间变量 所以*可以抵消
int a5;
int *pa;
int **qp;
int ***kq;
printf(“%d”, a);//5
printf(“%d”, *p);//5
printf(“%d”, **q);//5
printf(“%d”, ***k);//5
类型转换 数据转换自动转换自动向高精度转换 强制转换float a3.14; printf(%d, (int)a); 地址转换/空间类型转换强制转换
int a65;
char *p(char *)a;// a 代表 4 字节空间地址 (char *)强制转换为 1 字节空间地址
if(*p 65)
{
printf(“小端\n”);
}
大小端 低位地址存高位数据 大端存储 低位地址存低位数据 小端存储 数据在进行网络传输时尤其是跨平台和设备会出现存储方式不同而引起的数据错误所以在发送数据之前需要进行大小端测试
地址偏移 地址加减加减的是空间个数空间的大小由空间类型决定
int a[5][20];
int *pa[0][0];
p1 a[0][0]1 a[0][1]
(int (*)[20])p1 a[0]1 a[1]
int (*q)[20]a[0]; // sizeof(q)8
变量 q 先与*结合所以 q 是指针
再与[20]结合所以指针指向数组数组有 20 个元素
最后与 int 结合所以数组元素是整型变量
q1 a[0]1 a[1]
(int *)q1 a[0][0]1 a[0][1]
指针常量常量指针
关键字const
功能修饰变量为常量
int *p; // 整型指针
float *p; // 浮点型指针
char *p; // 字符指针
常量指针指向常量的指针
数字常量 字符常量 字符串常量
指针常量指针自己是常量
const char *p;//常量指针 const 修饰*p指针指向的空间是常量
char const *p;//常量指针
char * const p;//指针常量 const 修饰 p指针自身是常量
const char * const p;//常量指针常量
指针数组数组指针
int a[5];// 整型数组
float a[5];// 浮点型数组
char a[5];// 字符数组
指针数组由指针组成的数组
int *a[5];// 整型指针数组
char *a[5];// 字符指针数组
数组指针指向整个数组的指针
int (*p)[5];// 整型数组指针
int a[2][3];
int (*p[2])[3]; // 整型数组指针数组
p[0]a[0];
p[1]a[1];
二维字符数组字符指针数组
char a[3][5]{“123”, “456”, “789”}; // 二维字符数组a 字节大小15
char *a[3]{“123789”, “456789”, “7896666666”}; // 字符指针数组a 字节大小24printf(“%s\n”, a[1]1); // 56789 附面试题
1、地址为0x80000020的内存段存储一个浮点型数据3.14 float *p(float *)0x80000020; *p 3.14;
2、
unsigned char *p0x10000010;
(unsigned long *)p20x10000020;
(unsigned long)p20x10000012;
(char (*)[5])p20x1000001A;
(short (**))p20x10000020;
3、
#include stdio.h
int main()
{char *p %s,%d\n;char *a hello;printf(p,a,36);printf(p3,36);printf(%s,%d\n,hello,36);return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920065.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!