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/Aliezerofist/p/15283549.html