黑马程序员——C语言指针使用小结
来源:互联网 发布:如何制作淘宝详情图 编辑:程序博客网 时间:2024/05/21 14:41
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、指针的的定义
1. 格式:变量类型 * 变量名
int * p
2. 作用:指针就一个作用,能够根据一个地址值,找到对应的存储空间
3. int *p; //定义了一个指针变量p,p的作用在于存储地址
int a = 10;
p = &a; //指针变量p指向了变量a的地址
*p=20; // 访问指针变量p指向的存储空间,并把a的值改为20
printf(“%d”, *p);
4. 指针变量p前面的 int表示指针变量只能指向int类型的数据
*指针的使用注意:
(1)int *p 只能指向int类型的数据
(2)指针变量只能存储地址 (int*p p=20 这种写法是错误的)
(3)指针变量未经过初始化,不要拿来直接访问其他存储空间 (int*p; printf("%d\n,*p")这种写法也是错误的)
5. int *p ; p=&a 等价于 int *p = &a
6. 所有类型的指针都占8个字节
7. 指向指针的指针
int **pp
二、指针和函数
1. 指向函数的指针
int *p(int ,int);
p=test; //定义一个指针变量p指向test函数
p左边的int:指针变量p指向的函数返回int类型的数据
p右边的int:指针变量p指向的函数有两个int类型的形参
2. 返回指针的函数
char * test () //test 函数返回一个char类型的指针
{
}
三、指针和数组
1. 指针访问数组元素
int ages[5]={10,9,8,67,56};
int *p;
p=&ages[0]; //指针变量p指向数组的首元素,也可以写成p=ages,因为数组名就是数组的地址,也是数组首元素的地址
此时的 p--->&ages[0]
p+1--->&ages[1]
..............
p+i--->&ages[i]
*结 论:数组元素的访问方式有三种
(1)数组名[下标] ages[i]
(2)指针变量名[下标] p[i]
(3)*(p+i)
2. 指针遍历数组元素
for (int i=0;i<5,i++)
{
printf("ages[%d]=%d\n",i, *(p+1));
}
3. 指针数组
char *names[5]={"jack","rose"}
四、指针和字符串
1. 指针字符串: char *name="it" //指针变量name指向字符串首字母
2. 字符串的输入
char name[20];
printf("请输入姓名:\n",name);
scanf("%s",name);
- 黑马程序员——C语言指针使用小结
- 黑马程序员—C语言指针的了解和使用
- 黑马程序员——C语言指针
- 黑马程序员—C语言—指针
- 黑马程序员——C语言指针
- 黑马程序员——C语言指针
- 黑马程序员——C语言指针
- 黑马程序员——C语言指针
- 黑马程序员——C语言指针
- 黑马程序员—C语言_指针
- 黑马程序员—C语言的指针
- 黑马程序员——C语言之指针常用方法小结
- 黑马程序员——C语言------指针和指针变量
- 黑马程序员——C语言总结--易犯错误小结
- 黑马程序员——C语言总结--易犯错误小结
- 黑马程序员—C语言—其他数据类型及小结
- 黑马程序员—C语言—运算符小结
- 黑马程序员—C语言—函数小结
- Administrator privileges required for OLE Remote Procedure Call debugging: this feature will not wo
- 详解精典问题==与equals()
- js页面滚动时层智能浮动定位实现
- 黑马程序员_Java(异常类,file类,递归,字节流)
- 安卓开发之常见死机问题--log分析
- 黑马程序员——C语言指针使用小结
- busybox制作文件系统之etc/inittab
- Windows Server 2008 R2 的使用方法
- Android 性能优化、内存优化
- Oracle trunc()函数的用法
- HDU 3172 Virtual Friends (并查集与map的运用,同HDU1829)
- android死机堆栈调试方法
- Windows Server 2008 R2的教程36篇!
- Android 分析log