C语言指针

&:取地址运算符
*:指针运算符
int i;
int *pi;
pi = &i;
*pi =9;
“pi=&i"表示 pi 赋值后指向整型变量 i 。第四句是将 9 赋值给 *pi ,相当于把9赋值给 pi 指向的内存空间。因此,“*pi=9”等价于“i=9”。

int i;
char *pc;
pc = &i;
错误! i 为整型变量 ,pc 是指向字符型的指针变量,用 &i 给pc赋值是错误的, pc 只能指向字符型变量。


指向一维数组元素的指针变量


int a[5];
int *pa;
pa = a;
C语言规定数组名代表 数组首元素的地址,a就是"&a[0]"
也可以定义指针变量同时初始化:
int *pa = a; 或者 int *pa = &a[0] ;

引用数组元素时指针的运算
int a[5] , n ;
int *pa = a;
int *qa;
qa = pa + 2; 是向高位地址方向移动2个数组元素,即qa指向a[2]
qa++; 使qa向高地址方向移动1个元素,指向下一个数组元素,即a[3]
qa–; 指向a[2]
n = qa - pa; 用来计算qa所指的元素与pa所指的元素之间有多少个元素,此时 n 为 2 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值