C语言之指针的用法与常见错误(1)

指针是变量的一种,里面是一个地址,通过这个地址找到要找的数据

实质:单元的地址就是指针内容;

在32位的操作系统中,所有类型的指针长度都是4个字节

原因:指针是用来保存地址的,地址的长度是由操作位数决定的,是由操作系统运行处理位数决定的

* 有2个含义

定义的时候:表示后面的变量是一个指针(不涉及取值)

使用的时候:表示取值(取地址里的数据)

int *p = &a;       //(√)  int型指针 p 指向 a 的地址
int *p; p = &a;    //(√)  先定义指针 p 为int型, 再指向 a 的地址
int *p; *p = &a;   //(×)  p 为 int 型指针,*p为指针 p 指向的地址对应的数据,而 &a 则是 a 的地址
int *p = &a;                    //p 指向 a 字符  p + 1 加一个字节
char *q = &b;                   //p 指向 整型 b q + 1 加四个字节

指针的运算

int x = 3, y = 0, *px = &x;

y = *px + 5;           //*px 为 x 的值 3,y = 8
y = ++*px;             //*px 的值加一,y = 4
y = *px++;             //先执行*px = 3,然后y = 3 + 1 = 4
*px++          //取 *p 的值,然后地址加1
(*px)++        // ++是 x 的内容加1

猜你喜欢

转载自blog.csdn.net/qq_42200183/article/details/81209107