//

//  main.m

//  C8-指针

//

//  Created by dllo on 15/10/15.

//  Copyright (c) 2015年 dllo. All rights reserved.

//

#import <Foundation/Foundation.h>

#import "student.h"

//指针作为数组参数

//void test(int *p)

//{

//    printf("%d\n", *p);

//    *p = 5;

//}

//冒泡排序指针实现

//void maopao(int *k, int count)

//{

//    for (int i = 0; i< count - 1; i++) {

//        for (int l = 0; l < count - 1 - i; l++) {

//            if (*(k + l) > *(k + l + 1)) {

//                int  b = k[l];

//                k[l] = *(k + l  + 1);

//                *(k + l + 1) = b;

//            }

//        }

//    }

//}

//

int main(int argc, const char * argv[]) {

//

//

//    int a = 0;

//    printf("%d\n",a);

//    printf("%p\n",&a);

//

//定义一个指针类型的变量

//变量类型 变量名 初值

//  int *p = NULL;

//指针基础使用最重要的两个符号: * &

// * - 取值运算符

//& - 取址运算符

//  int a = 5;

//通过指针访问

//指针指向空间 - 本质就是指针的空间存了a的地址值

//  p = &a;

//通过指针访问所指向空间中的元素值

//   printf("%d", *p);

//练习

//    float a = 4.5;

//    float  *b = NULL;

//    b = &a;

//    printf("%f ",*b);

//

//    int a = 5;

//    int b = 7;

//    int *p1 = NULL;

//    int  *p2 = 0;

//    p1 = &a;

//    p2 = &b;

//

//    int c = 0;

//    int *temp = NULL;

//    temp = &c;

//    *temp = *p1;

//    *p1 = *p2;

//    *p2 = *temp;

//

//    printf("%d %d",*p1,*p2);

//    printf("%d %d",a , b);

//

//    int a = 0;

//    int b = 0;

//    int c = 0;

//    scanf("%d%d%d",&a, &b, &c);

//    int *p1 = NULL;

//    int *p2 = NULL;

//    int *p3 = NULL;

//    p1 = &a;

//    p1 = &b;

//    p1 = &c;

//    int max = *p1 > *p2 ? * p1 : *p2;

//    max = max > *p3 ? max : *p3;

//

//    int a = 0;

//    int b = a;

//    printf("b1= %d",b);

//    scanf("%d",&a);

//    printf("b2= %d",b);

//

//

//     int a = 0;

//    int *p1 = NULL;

//    p1 = &a;

//    printf("p1= %d",*p1);

//    scanf("%d",&a);

//    printf("p2= %d",*p1);

//定义和使用在一起,int *p = &a;

//指针的加减就是位移

//    int *p1 = NULL;

//    char *p2 = NULL;

//    printf("%ld\n",sizeof(p1));

//    printf("%ld\n",sizeof(p2));

//指针是用来存地址的,为了保证能够存下最大的地址.系统有自己的位宽64位或者32位,硬件也有自己的位宽64位或者32位,指针的大小跟系统有关,跟硬件无关

//在同一个系统中,不同类型的指针占内存大小相同,64位下都占8个字节

//不同类型的指针的意义

//1 *p所见范围不同

//2,p++移动大小不同

//    int a = 256;

//    char *p = &a;

//    p++;

//    printf("%d\n",*p);

//指针和数组的关系

//    int a[5] = {1, 2, 3, 4, 5};

//    int *p = NULL;

//

//指针指向数组首地址

//  p = a;

//  p = &a[0];

//指向数组中的其他元素

// p++;

// printf("%d\n", *p);

//

//    printf("%d\n",p[1]);

//     printf("%d\n", *(p + 1));

//     printf("%d\n",*(a + 1));

//

//

//记住2个本质,第一个语法糖(数组本不存在,a[4]实际上是一个首地址加上4个偏移量),c语言中所有的操作都是通过地址操作来实现的

//第二个 变量,是地址所指向的空间.

//数组名字是常量不可以改变

//练习通过指针对数组进行冒泡排序

//    int a[5] = {54, 34, 65, 434, 67};

//    int *p = a;

//    for (int i = 0; i < 5 - 1; i++) {

//        for (int j = 0; j < 5 - i - 1; j++) {

//            if (*(a + j) > *(p + j + 1)) {

//                int b =*(p + j);

//               *(p + j)= *(p + 1 + j);

//                *(p + 1 + j) = b;

//            }

//        }

//    }

//    for (int i =0; i < 5; i++) {

//        printf("%d ",*(p + i) );

//    }

//通过指针可以计算字符串的长度

//编程实现

//    char b[6] = "yuhao";

//    char *p1 = b;

//    int count = 0;

//遇到'\0'退出循环

//    while (*p1 != '\0') {

//        count++;

//计数加1

// p1++;

//指针移动访问后一个元素

//    }

//    printf("%d ",count);

//

//

//    int a = 6;

//    test(&a);

//    printf("%d",a);

//    int  a[5] = {1,34,55,64,432};

//    maopao(a, 5);

//    for (int i = 0 ; i < 5; i++) {

//        printf("%d ",a[i]);

//    }

//指针数组

//    int * p[2000] = {NULL};

//

//昨天的限时代码

//    student stu[6] = {

//        {"yuhafo", "female", 22, 99},

//        {"yuhfsao", "female", 22, 98},

//        {"lijin", "man", 23, 94},

//        {"wangqi", "man", 24, 93},

//        {"sunyunpu", "man", 23, 99},

//        {"zhouyou", "man", 34, 99}

//    };

//    pointstrarray(stu, 6);

//    sortstrarray(stu, 6);

//    pointstrarray(stu, 6);

//  1.  (**)编写一个函数,交换2个浮点数。

//

//    1. (***)在主函数中输入6个字符串(二维数组),对他们按从小到大的顺序,然后输出这6个已经排好序的字符串。要求使用指针数组进行处理。

//

//    2. (****)面试题:

//    有一字符串中包含数字与字符,请编程去除数字

//

//

//

//    float a = 5.8;

//

//

//    float b = 8.0;

//

//    change(&a, &b);

//

//    char arr1[] = "yuhadjad2312jlsdhasdl";

//

//

//    removenumber(arr1);

//    char arr1[30] = "aaasfff";

//    char arr2[10] = "afa";

//    copystrcat(arr1, arr2);

//printf("%s",arr1);

//    copystrcmp(arr1,arr2);

// copystrcpy(arr1, arr2, 30);

return 0;

}

转载于:https://www.cnblogs.com/yuhaojishuboke/p/5043135.html

ios开发之c语言基础-指针相关推荐

  1. ioS开发之c语言基础-一维数组,字符数组

    // //  main.m //  C4-一维数组,字符数组 // //  Created by dllo on 15/10/8. //  Copyright (c) 2015年 dllo. All ...

  2. iOS开发之c语言入门教程

    苹果作为移动互联的高端品牌,iOS操作系统也被用户公认为是最好用的移动互联网操作系统.据了解,曾一度拒绝为iOS平台对出浏览器的火狐在今年5月份的时候,他们却食言了.今天,Mozilla宣布iOS版F ...

  3. iOS开发之Objective-C(基础篇)-李飞-专题视频课程

    iOS开发之Objective-C(基础篇)-232人已学习 课程介绍         该系列课程是iOS开发之Objective-C基础入门视频.课程中会详细的讲解OC语法特点,面向对象的使用,循环 ...

  4. Android NDK开发之C语言基础及指针①

    我们知道 , Android系统是基于linux开发 , 采用的是linux内核 , Android APP开发大部分也要和系统打交道 , 只是Android FrameWork 帮我们屏蔽了系统操作 ...

  5. (0033) iOS 开发之Block 的基础用法及注意事项2

    循环引用之String 当在block内部使用成员变量的时候,比如 @interface ViewController : UIViewController { NSString *_string; ...

  6. iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements

    在前面的博客中已经介绍了如何连接SQLite数据库,并且简单的查询和遍历结果集.在前面用到了sqlite3_stmt *stmt,也就是预编译后的SQL语句.在本篇博客中会了解一下sqlite3_st ...

  7. (0032) iOS 开发之Block 的基础用法及注意事项1

    该文章参考多篇文章,已记不清,如有问题请联系我. 参考:http://blog.csdn.net/zm_yh/article/details/51469275 Block理解 1. Block执行的代 ...

  8. Flutter开发之Dart语言基础

    Flutter 发展历史 Flutter是Google开发的一款用于帮助开发者在iOS和Android两个平台构建高质量原生应用的全新移动UI框架.说到Flutter,很多同学可能会将它和下面的几个词 ...

  9. iOS开发之C语言---for循环

    1.for循环介绍 语法:for(表达式1:表达式2:表达式3) { 循环体: } 语义: 第一步:先执行表达式1,再跳转到表达式2 第二步:判断表达式2是否为真,如果为真则跳转到第三步,如果为假,那 ...

  10. ios开发之OC基础-类和对象

    ios开发之OC基础-类和对象 本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录 ...

最新文章

  1. Direct2D教程(三)简单几何图形
  2. ecdf函数_关于ecdf函数的使用问题
  3. C#编程规范--控件命名篇[转]
  4. 高性能计算战火再度升级,科技综合实力竞争少不了它
  5. 统一修改文件下所有图片大小 Python3
  6. php-ml案例,AppML 案例原型
  7. Leecode题解汇总(附题型归类)
  8. 【EPS精品教程】史上最牛EPS说明文档大全(23个PDF文档)
  9. C语言:几种字符输入函数的区别
  10. 编程中的蛇形填空问题_PCB—蛇形线的作用,这次真的是把你搞懂了
  11. 关于linux下制作静态库
  12. (王道408考研数据结构)第七章查找-第二节3:分块查找
  13. 通过Nethogs查看服务器网卡流量情况
  14. 基于MFC和OpenCV的摄像机定标与立体匹配测试程序
  15. android studio调整字体大小,如何在Android Studio中增加字体大小?
  16. 2022年高处安装、维护、拆除操作证考试题库及在线模拟考试
  17. 学术-物理-维空间:二维空间
  18. Hackintosh相关资源站
  19. ecshop Strict standards: Only variables should be passed by reference in flashplay.php on line 181
  20. 【计算机图形学】结课大作业——光照模型(3D场景)

热门文章

  1. appium使用教程python_appium使用教程(一 环境搭建)-------------2.安装部署
  2. pdo调用mysql存储过程_获取out参数值问题_调用Oracle存储过程并获取out参数值-阿里云开发者社区...
  3. codevs——1436 孪生素数 2
  4. Easy machine learning pipelines with pipelearner: intro and call for contributors
  5. 为了健康,别做这20件事
  6. 游戏文件系统(a11s)
  7. 用户列表 html,用户列表.html
  8. java kafka 开发,Kafka JAVA API开发-基础案例
  9. 查看Windows上运行程序的异常日志
  10. Unity自定义Editor简明教程