基本概念
在程序中是通过对内存单元进行存取操作,但是代码经过编译后就将变量名转换为变量在内存中的地址,对变量值的存取都是通过地址进行的。如i+j 其含义是:根据变量名对应的地址,读取 i 的数据放入到CPU寄存器中,再找到 j 的地址,读取 j 的数据放入到CPU另一个寄存器中,通过CPU的加法中断计算结果。
指针变量
形式:类型说明 *变量名;
定义与赋值
int a;
int *p=&a;
int a;
int *p;
p=&a;
引用
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *p,q;
p=&q;
scanf("%d",&q);
printf("%d",*p);
return 0;
}
int main(){
int *p,q;
p=&q;
scanf("%d",p);
printf("%d",q);
return 0;
}
& 和 * 运算符
&:取地址运算符。获取变量的地址
*:指针运算符,单目运算符。返回指针地址内变量的值。
*&p 和 &*p运算符
&和*的优先级相同,则自右向左结合。
int a;
p=&a;
*&p:&p取变量a的地址,然后执行 * 预算,相当于取出变量a所在地址的值,实际上就是变量a。
&*p:*p相当于变量a,然后执行 & 运算,相当于取变量a的地址。
#include <stdio.h>
#include <stdlib.h>
int main()
{
long *p;
long q;
scanf("%ld",&q);
p=&q;
printf("&*p的值为%ld\n",&*p);
printf("*&q的值为%ld\n",*&q);
return 0;
}

指针的自加减运算
指针的自加减运算相当于按照变量类型所占字节数的大小,对地址进行加减。
#include <stdio.h>
#include &

本文详细介绍了C语言中的指针概念,包括指针变量的定义、赋值和引用,以及指针与一维数组、二维数组、字符串和指针数组的关系。此外,还探讨了指向指针的指针、指针作为函数参数的用法,以及返回指针值的函数的应用。通过实例展示了如何利用指针高效地操作数组和字符串。
最低0.47元/天 解锁文章
578

被折叠的 条评论
为什么被折叠?



