C语言之指针
2015-11-28 16:21
197 查看
指针是C语言学习一个重要的概念,它极大的方便了C语言编程,用好了指针可以帮助我们编程,但是同时指针也是饱受争议,因为指针的使用很容易出错,所以在一开始学的时候就弄懂有关指针的知识点是必要的。
那么指针是什么呢?其实指针也是一种变量,和其他类型的变量一样,也是存储数据的,只是在指针变量里面存储的是一个内存的地址,可以通过解引用来获得这个地址真正的里面的东西。32位计算机的内存大小是4G,所以要能标示完全4G大小的内存这个地址的长度最小是32位,所以在32位机器上指针的大小是4个字节,也就是32位。
1、一级指针
int i = 10;
int *p = &i;
p就是一个指向一个int型数据的指针,*p就是找到p中存放的那个地址所代表的数据,也就是i的值。
2、二级指针
int i = 10;
int *p = &i;
int *pp = &p;
pp就是一个二级指针,它是一个指向指针的指针。
3、字符串和指针
C语言中没有字符串变量,但是有字符串常量和字符指针。在C中去找到和定位一个字符串就用到字符指针。
char *str = “Hello World!”;
str就是一个字符指针,指向的是一个字符串(字符串内容不可修改),它的内容是字符串第一个字符的地址也就是‘H’的地址。指针str存在于内存的栈区,而字符串常量“Hello World!”存在于内存的文字常量区(在内存中只有一份)。
那么指针是什么呢?其实指针也是一种变量,和其他类型的变量一样,也是存储数据的,只是在指针变量里面存储的是一个内存的地址,可以通过解引用来获得这个地址真正的里面的东西。32位计算机的内存大小是4G,所以要能标示完全4G大小的内存这个地址的长度最小是32位,所以在32位机器上指针的大小是4个字节,也就是32位。
1、一级指针
int i = 10;
int *p = &i;
p就是一个指向一个int型数据的指针,*p就是找到p中存放的那个地址所代表的数据,也就是i的值。
2、二级指针
int i = 10;
int *p = &i;
int *pp = &p;
pp就是一个二级指针,它是一个指向指针的指针。
3、字符串和指针
C语言中没有字符串变量,但是有字符串常量和字符指针。在C中去找到和定位一个字符串就用到字符指针。
char *str = “Hello World!”;
str就是一个字符指针,指向的是一个字符串(字符串内容不可修改),它的内容是字符串第一个字符的地址也就是‘H’的地址。指针str存在于内存的栈区,而字符串常量“Hello World!”存在于内存的文字常量区(在内存中只有一份)。
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- Lua和C语言的交互详解
- C# Pointer指针应用实例简述
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法