c语言数据结构那些事儿(C语言数据结构5)
c语言数据结构那些事儿(C语言数据结构5)打印必须用%p打印,p是地址变量;i=100;int *p=&i;*p=100;*(&i)=100; //(&取地址符,*解应用,指向指针变量中地址的具体内容)
指针:P(指针变量);
在计算机内部存储器(内存),每一个字节单元都有一个编号,称为地址(16进制);
只要有指针,sizeof求的都是4位字节;
int i=10;
int *p=&i;
*p=100;
*(&i)=100; //(&取地址符,*解应用,指向指针变量中地址的具体内容)
i=100;
打印必须用%p打印,p是地址变量;
int *p; //p(int * 型)
int *p=&i; //int *p——(*(&i));p=&i (初始化方式),*p指i的值;
当i确定时,字符串必须初始化:a[i]={0};
指针:<存储类型> <数据类型> *<指针变量名>
注意:int *p;*p=10;(野指针,会报段错误或者发生逻辑问题);
int *p=NULL(空指针) //没有具体的初始化,是一定会报段错误;
具体用法:
int i; int *p=&i;(初始化指针);
int *p i; p=&i; *p=NULL;
指针变量的空间在32位系统中是4个字节,64位系统中是8个字节;
指针运算:
1、算数运算:指针*p的运算就是变量本身的运算;指针变量的运算就是p的运算(p n p-n,n为整数);实际上是地址的运算;
p (--) p(--p);必须是相同的数据类型,栈、队列、数值;
数据传输模式:小端模式、大端模式(TCP/IP协议规定网间传输必须使用大端模式);
大端模式:低字节存高地址
小端模式:高字节存高地址
int i=0x11223344;
char j;
j=i;
printf("%#x",j);