C 指针

int a=1,*p;p=a;
p中存放的是a的地址不是值
*p通过存储的地址找到a的值
定义的指针时*是定义说明符

输出时是单目运算符 间接访问运算


指针定义int *p

p值的是指针变量的名字,表示指针变量指向的内存地址

*p表示指向地址中的内容

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     //a地址假设为0000000
 6     int a = 1;
 7     //指针变量地址假设为0000004
 8     int* p = &a;
 9     //输出:0000000是a变量的地址
10     printf("%p", &a);
11     //输出:0000000通过指针变量p指向a变量的地址
12     printf("%p", p);
13     //输出:0000004指针变量p本身的地址
14     printf("%p", &ap);
15     //输出:1,是指针指向的地址中的内容,等价与输出变量a
16     printf("%d", *p);
17 }

指针运算中* ++ -- 是同级运算 从右开始

例如:

int a,*p;

a=*p++,先指针变量++,然后取指向地址的值,a=*(p++);

a=*++p,先指针变量++,然后取指向地址的值,a=*(++p);

a=--*p,先取指向地址的值,然后值--,a=(*p)--;

a=(*p)--,先取指向地址的值,然后值--,括号里的先运算,a=(*p)--;

   

          

本文来自博客园,作者:{繁星划过天际},转载请注明原文链接:https://www.cnblogs.com/Aliez02/p/15283549.html

原文地址:https://www.cnblogs.com/Aliez02/p/15283549.html