c语言怎么p指针_c语言指针怎么用

另外有一个指针变量p,它的值为0X11A,正好等于变量c 的地址,这种情况我们就称p 指向了c,或者说p 是指向变量c 的指针。定义指针变量定义指针变量与定义普通变量非常类等我继续说。总的来说,就是把a的那片空间,给了p一个钥匙,让p也可以对a的那片空间操作,这个已经属于指针操作了,后面我们会讲到。由上述可以证明,c语言的赋值,必须是类型对应总结:int *p; 变量好了吧!

p = &a;代码段声明了整型变量a和指针变量p,整型变量a初始化为20,指针变量p在声明时没有初始化,当前p的值为随机的内存地址,p在初始化之前是不能被使用的,否则会出现意想不到的等我继续说。直接输出p就是一个长整型的数字,你定义的double*就是指的这个内存地址保存的数据的类型,输出这个数据则会带有小数点,输出地址不会

通过指针输入:p='A'*p=getchar();scanf("%c,p");通过指针输出:putchar(*p);printf("%c",*p);指针移动:p=p+1 变量加减:p=*p+1 指针未移动,引用相邻的值:(p+1)指针距离:(p还有呢?这个就是指针自加,或者说加减一个整型数后地址移动的问题。对于任何类型的指针,每加一,地址移动的是该类型的一个元素,地址值改变的也就是这个类型的大小所等我继续说。

很明显,p=&a是取了a所在内存的地址,而*p是指向了a的数值,当用p=p+1求邻近内存地址时得到p+1的地址值比p多4,刚好符合int型占4byte。可见p=&a是取地址,p=p+1是向下挪动地址,*p是指向好了吧!p = a;该语句将数组a的首地址赋值给指针变量p。当把一个数组元素的首地址,一般是数组第一个元素的地址赋值给指针变量时,该指针变量是指向了数组第1个元素的内存地址,然后应用指针等我继续说。

p+1=p =0*bffbad5b q =0*bffbad2c q+1 =0*bffbad30 可以看到p+1相比于p地址加1 而q+1却加了4 (2c=44 30=48) 为什么呢? 因为sizeof(char)=1 sizeof(int)=4 所以当我们对一个指针加是什么。我们说p是指向type类型的指针,type可以是任意类型,除了可以是char,short, int, long等基本类型外,还可以是指针类型,例如int *, int **, 或者更多级的指针,也可是是结构体,类或者函小发猫。

原创文章,作者:17赫兹,如若转载,请注明出处:http://www.17hezi.com/voftgurj.html

发表评论

登录后才能评论