C语言之指针篇
来源:互联网 发布:李氏筋骨散淘宝 编辑:程序博客网 时间:2024/05/21 09:55
可以把一个地址赋给指针变量。通常使用数组名或地址运算符&来进行地址赋值。
取值(dereferencing)
运算符*可取出指针变量指向地址中存储的数值。
取指针变量的地址(Taking a pointer address)
指针变量同其他变量一样具有地址和数值。使用运算符&可以得到指针本身的地址。
将一个整数加给指针变量
可以使用+运算符来把一个整数加给一个指针变量。此时,整数会和指针变量所指类型的字节数相乘,然后乘得的结果会加到初始地址上。
增加指针变量的值
可以通过一般的加法或增量运算符来增加一个指针变量的值。
从指针变量中减去一个整数
可以使用-运算符来从一个指针变量中减去一个整数。指针变量必须是第一个操作数。
减小指针变量的值
指针变量的减量运算。
求差值
可以求出两个指针变量间的差值。通常对分别指向同一个数组内两个元素的指针变量求差值,以求出元素之间的距离。差值的单位是相应类型的大小。
比较
可以使用关系运算符来比较两个指针变量的值(前提是两个指针变量具有相同的类型)。
#include <stdio.h>
// 指针变量的定义
int main1()
{
int a;
// 定义一个指针变量,
// *表示这个变量是指针,内部必须要存地址
// int 这个指针指向的类型是 int 类型数据
int *p;
p = &a;
printf ("&a = %p\n", &a);
printf ("p = %p\n", p);
printf ("&p = %p\n", &p);
return 0;
}
// 指针变量的大小
int main2()
{
int a;
int *p = &a;
char ch;
char *pch = &ch;
// 指针内部存的是地址,32位情况下,地址都是32位的
// 所以在32位编译器下,指针都是4个字节
printf ("p = %d\n", sizeof(p));
printf ("pch = %d\n", sizeof(pch));
return 0;
}
// 指针变量的取值
int main3()
{
int a = 10;
int *p = &a;
printf ("a = %d\n", a);
// 在变量定义的时候,*代表变量的类型是指针
// 在使用指针变量的时候,*代表去指针指向的那一块内存的值
// * + 地址, 代表那个那个地址所表示的内存
printf ("*p = %d\n", *p);
*p = 200;
printf ("a = %d\n", a);
return 0;
}
int main()
{
int a = 10;
int b = 20;
int *pa = &a;
int *pb = &b;
// 通过 pa 与 pb 交换 a 与 b 的值
int tmp = *pa;
*pa = *pb;
*pb = tmp;
return 0;
}
// * &
int main()
{
int a = 10;
int *p = &a;
// *&a ==> *(&a) ==> *p ==> a
// &*p ==> &(*p) ==> &a ==> p
return 0;
}
- C语言之指针篇
- C语言之指针篇
- C语言之指针
- C语言之指针
- C语言之指针
- C语言之指针
- c语言之指针
- c语言之指针
- C语言之指针
- C语言之指针
- C语言之指针
- C语言之指针
- C语言之指针
- C语言之指针
- c语言之指针
- c语言之指针
- C语言之指针
- C语言之指针
- struts2页面下载,从数据库把数据以excel表格形式导出
- POSIX多线程程序设计学习篇之一(线程管理)
- Vitamio 的导入过程
- Hibernate和Mybatis对比(优缺点)
- linux 下卸载PHP
- C语言之指针篇
- 【正一专栏】共享单车那些事儿
- Linux 进程管理
- 不忘初心,继续前行
- 八大排序算法
- 百练4015:邮箱验证题解
- python-pandas的基本用法11
- redis cluster中添加删除重分配节点例子
- Ride to office