黑马程序员--指针
来源:互联网 发布:java程序设计教程赵辉 编辑:程序博客网 时间:2024/05/22 04:50
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
/*
指针与数组 :指向一位数组元素的指针
数组元素的访问方式
1》数组名[下标]ages[i]
2》指针变量名[下标]p[i]
3> *(p + i)
指针变量的加一 取决于指针类型
*/
指针的简单运用
int main(){ int ages[5] = {10, 2, 3, 8, 66}; int *p; p = &ages[0]; // 数组名就是数组的地址,也是数组首元素的地址 // p = ages; /* p---->&ages[0] p + 1---->&ages[1] p + 2---->&ages[2] p + i---->&ages[i] */ // printf("%d\n",*p(p + 2)); // printf("%d\n",p[2]) for (int i = 0; i<5; i++) { printf("ages[%d]=%d",i,*(p+i)); } return 0;}
/*指针与字符串
掌握
1》定义字符串的两种方式
1.利用数组
char name[] = “itcast”;
特点:字符串里的字符可以修改
使用场合:字符串的内容需要经常修改
2.利用指针
char *name = “itcast”;
特点:字符串里的字符不能修改,是常量字符
使用场合:字符串的内容不需要经常修改,而且这个字符串经常使用#include
#include <string.h> int string_len(char *s); int main() { char a[] = "itcast123123123"; int longth = string_len(a); printf("%d\n",longth); return 0; } int string_len(char *s) { return strlen(s); }
指针数组与字符串的输入
int main (){ char *name = "jack" // 指针数组 (字符串数组) char *name[5] = {"jack","jim", "rose"}; // 二位字符数组 char name2[2][10] = {"jack", "rose"}; return 0;}
指向函数的指针
1.为什么指针可以指向一个函数函数作为一段程序,在内存中也要占据部分存储空间,它也有一个起始地址,即函数的入口地址。函数有自己的地址,那就好办了,我们的指针变量就是用来存储地址的。因此,可以利用一个指针指向一个函数。其中,函数名就代表着函数的地址。
2.指向函数的指针的定义
定义的一般形式:函数的返回值类型 (*指针变量名)(形参1, 形参2, …);
3.使用注意
由于这类指针变量存储的是一个函数的入口地址,所以对它们作加减运算(比如p++)是无意义的
指向函数的指针变量主要有两个用途:
调用函数
将函数作为参数在函数间传递
4.定义指向函数的指针
double (*p)(double, char *, int) = haha;// 函数名就是函数地址int sum(int a, int b){ retrn a + b;}int main (){ // 定义指针变量指向sum函数 // 左边的int:指针变量p指向的函数返回int类型的数据 // 右边的(int, int):指针变量p指向的函数有2个int类型的形参 int (*p)(int ,int); p = sum; int c = p(12, 32); printf("c is %d\n", c); return 0;}
0 0
- 黑马程序员_指针
- 黑马程序员-指针小结
- 黑马程序员(指针)
- 黑马程序员-------指针
- 黑马程序员-指针
- 黑马程序员—指针
- 黑马程序员----------指针
- 黑马程序员--指针
- 黑马程序员--指针
- 黑马程序员--指针
- 黑马程序员_iOS_C_指针
- 黑马程序员_C语言指针
- 黑马程序员:c语言--指针
- 黑马程序员_指针数组
- 黑马程序员__c语言指针
- 黑马程序员-C-指针类型
- 黑马程序员-数组与指针
- 黑马程序员 指针与数组
- 学习运维的日子
- Fragment详解之三——管理Fragment(1)
- 我最想知道这些东西对我有什么用?
- C++ RTMP直播流播放器
- angularJS最近总结一些零碎的知识点
- 黑马程序员--指针
- java类加载机制
- Fragment详解之四——管理Fragment(2)
- cocos2d-x 架构 之内存管理
- Linux SMB命令使用小结
- Ubuntu 安装LAMP
- 进程间通信之消息通信
- hdu 1247 Hat’s Words(Trie树入门)
- Fragment详解之五——Fragment间参数传递