黑马程序员----------指针
来源:互联网 发布:淘宝客 api sdk下载 编辑:程序博客网 时间:2024/05/01 13:14
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1.指针格式
类名称标识符 *指针变量名;
2.先定义后赋值:
int a = 10;
int *p;//定义一个指针变量
p = &a;//指针变量指向变量a的存储空间。
定义的同时赋值:
int a =10;
int *p = &a;
3.指针的作用:指针就一个作用,能够根据一个地址值访问对应的存储空间。
4. 指针的注意点:int *p 只能指向“int"类型的数据;
指针变量只能存储地址;
指针变量未经初始化,不要拿来直接访问其他存储地址;
例题1:
#includevoid change(int *n);//函数声明int main(){ int a = 90; change(&a); printf("%d\n", a); return 0;}void change(int *n){ *n = 10;}
例题2:
#includeint sumAndMinus(int a ,int b,int*minus);int main(){ int n1 = 10; int n2 =6; scanf("%d,%d"&n1,&n2); int he; int cha; printf("%d,%d\n",he ,cha); return 0;}int sumAndMinus(int a ,int b,int*minus){ *minus = a-b; return a+b ;}
5.指针和数组
1>数组名就是数组的地址,也是首字符的地址。
数组元素的访问:
1>数组名[下标] ages[1];
2>指针变量名 [下标] p[1];
3>*[p+i];
例子:输出数组中所有元素;
方法一:
#includeint main(){ int ages[] = {10,20,30,40,50}; int *p = ages;//数组名就是数组第一个元素的地址 int length = sizeof(ages)/sizeof(int);//求出数组的长度 for (int i=0;i { printf("%d\n",ages[i]);//逐个输出数组的元素 } return 0;}
方法二:
#includeint main(){ int ages[] = {10,20,30,40,50}; int *p = ages;//数组名就是数组第一个元素的地址 int length = sizeof(ages)/sizeof(int);//求出数组的长度 for (int i=0;i { printf("%d\n",p[i]);//逐个输出数组的元素 } return 0;}
方法三:
#includeint main(){ int ages[] = {10,20,30,40,50}; int *p = ages;//数组名就是数组第一个元素的地址 int length = sizeof(ages)/sizeof(int);//求出数组的长度 for (int i=0;i { printf("%d\n",*(p+i));//逐个输出数组的元素 } return 0;}
例题:实际一个函数:int arraySum(int a[],int n),求一位数组a前n个数的和。现在利用int *p替换int a[]
);
#includeint main(){ int fenShu[] = {10,20,30,40,50,60}; int he = arraySum(fenShu,3 ) ; printf("%d\n",he); return 0;}int arraySum( int *p ,int n ){ int sum=0; for(int i = 0;i { p[i]; sum = sum +p[i]; }return sum; }
6.指针和字符串:
定义字符串的两种方式:
1>char name[] = "itcast";
特点:字符串里面的字符能修改
使用场合:字符需修改的字符串中
2>char *name = "itcast";
特点:字符串里面是常量,不能修改
使用场合:字符经常用到,不许修改。
7.指针数组:
字符串数组的两种方式
1.>char *name[5] = {"rose","jack","jim"};
2>char name2[3][5]={"rose","jack","jim"};
8.返回指针的函数
#includechar *test();int main(){ char *name = test(); printf("%s\n",name); return 0 ;}char *test(){ return "rose";}
9.指向函数的指针:
int (*p)(int int ):表示返回值类型是”int"型,且指针p指向的函数有两个“int"的参数。
例子:三种调用函数的方法
#includevoid test();int main(){ void (*p)(); p = test; //test();//直接调用 //p();//间接调用 (*p)();//间接调用函数 return 0;}void test(){ printf("调用了test函数\n");}
- 黑马程序员_指针
- 黑马程序员-指针小结
- 黑马程序员(指针)
- 黑马程序员-------指针
- 黑马程序员-指针
- 黑马程序员—指针
- 黑马程序员----------指针
- 黑马程序员--指针
- 黑马程序员--指针
- 黑马程序员--指针
- 黑马程序员_iOS_C_指针
- 黑马程序员_C语言指针
- 黑马程序员:c语言--指针
- 黑马程序员_指针数组
- 黑马程序员__c语言指针
- 黑马程序员-C-指针类型
- 黑马程序员-数组与指针
- 黑马程序员 指针与数组
- js默认参数实现方法
- memcached缓存失效时的高并发访问问题解决
- 第2课
- 2015.5.14
- Xcode6.2 调试时,Crash到main函数的入口(UIAPPlicationMain)
- 黑马程序员----------指针
- Memcache存储大数据的问题
- 操作系统--4内存管理
- 博文收藏
- 第3课
- 做好日志,用好日志
- 性能分析与优化的故事
- 控件
- oracle中的替换函数简要分析