黑马程序员——C语言中指针与其他数据类型的结合使用
来源:互联网 发布:淘宝代运营sina 编辑:程序博客网 时间:2024/06/06 09:31
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1:指向基本数据类型变量的指针
<pre name="code" class="plain">#include <stdio.h>int main(int argc, const char *argv[]){int a = 5;int *p = &a;printf("p = %p\n", p);printf("*p = %d\n", *p);return 0;}
2:指向数值数组首元素的指针
int arr[5] = {};//数组名是地址常量,等于数组首元素地址,arr等价于&arr[0]
(1):初始化//arr等价于&arr[0],但是arr不能进行++运算!
int (*pArr) = &arr[0];//int (*pArr) = arr;
(2):赋值语句
int *pArr = NULL:
pArr = &arr[0]; //pArr = arr;
引用数组成员://pArr等价于arr
下标法:arr[i], pArr[i]
指针法:*(arr+i), *(pArr+i)
<span style="font-size:14px;">例:删除指定整数N</span>
<span style="font-size:14px;">#include <stdio.h>#include <stdlib.h>#include <time.h>#define NUM10int main(int argc, const char *argv[]){int arr[NUM] = {};int i = 0;int j = 0;int n = 0;//删除的数int t = 0;//统计删除了多少个srand(time(NULL));for (i=0; i<NUM; i++){//输入*(arr+i) = rand()%1;printf("%d ", *(arr+i));}printf("\n");scanf("%d", &n);for (i=0; i<NUM-t; i++){//遍历数组if (*(arr+i) == n){//找到nfor (j=i; j<NUM-1-t; j++){//循环前移*(arr+j) = *(arr+j+1);}t++;//计数+1i--;//防止不能删除相邻重复的成员}}for (i=0; i<NUM-t; i++){//输入printf("%d ", *(arr+i));}printf("\n");return 0;}</span>
3:指向字符数组首元素的指针
字符串的常见表示形式:
(1):通过字符数组来保存字符串
例子:char buf[] = “abcd”;//buf栈,”abcd”
(2):通过字符指针来保存字符串的首地址
例子:char *p = “abcd”;//p字符串的首地址,p栈,”abcd”数据段中的只读存储区
(3):通过指向字符数组首元素的指针
例子:char buf[] = “abcd”, char *p = buf;
4:指向函数的指针
指针函数
函数指针
5:指向结构体变量的指针
6:指向结构体数组的指针
0 0
- 黑马程序员——C语言中指针与其他数据类型的结合使用
- 黑马程序员—C语言指针的了解和使用
- 黑马程序员------object-c简史及对比基本语法与其他语言的不同
- 黑马程序员—C语言的指针
- 黑马程序员——c语言的复杂数据类型:数组和指针
- 黑马程序员——c语言的复杂数据类型:指针和结构体
- 黑马程序员——C语言指针使用小结
- 黑马程序员——c语言复杂数据类型:结构体和枚举,typedef的使用
- 黑马程序员——C语言指针
- 黑马程序员—C语言—指针
- 黑马程序员——C语言指针
- 黑马程序员——C语言指针
- 黑马程序员——C语言指针
- 黑马程序员——C语言指针
- 黑马程序员——C语言指针
- 黑马程序员—C语言_指针
- 黑马程序员——C语言——复杂数据类型(数组、字符串、指针)
- 黑马程序员——C语言基础--复杂数据类型(指针&枚举&变量)
- 黑马程序员之IOS学习总结——02C语言的流程控制之选择结构
- unity3d之接口
- web api 返回多个对象集合
- 【优化】Ubuntu14.04成功安装apt-fast
- Linux之Makefile(notdir)
- 黑马程序员——C语言中指针与其他数据类型的结合使用
- NSTimer的使用以及 史上最简单的,NSTimer暂停和继续
- 整数划分
- 多线程与多进程
- Visual studio 2010 linker error LNK1123
- mfc使用不同类型的画刷填充矩形
- ios之经典算法冒泡排序以及优化
- Unity3D基础知识 接口
- Linux之Makefile(subffix)