ios开发之c语言基础-指针
//
// 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语言基础-指针相关推荐
- ioS开发之c语言基础-一维数组,字符数组
// // main.m // C4-一维数组,字符数组 // // Created by dllo on 15/10/8. // Copyright (c) 2015年 dllo. All ...
- iOS开发之c语言入门教程
苹果作为移动互联的高端品牌,iOS操作系统也被用户公认为是最好用的移动互联网操作系统.据了解,曾一度拒绝为iOS平台对出浏览器的火狐在今年5月份的时候,他们却食言了.今天,Mozilla宣布iOS版F ...
- iOS开发之Objective-C(基础篇)-李飞-专题视频课程
iOS开发之Objective-C(基础篇)-232人已学习 课程介绍 该系列课程是iOS开发之Objective-C基础入门视频.课程中会详细的讲解OC语法特点,面向对象的使用,循环 ...
- Android NDK开发之C语言基础及指针①
我们知道 , Android系统是基于linux开发 , 采用的是linux内核 , Android APP开发大部分也要和系统打交道 , 只是Android FrameWork 帮我们屏蔽了系统操作 ...
- (0033) iOS 开发之Block 的基础用法及注意事项2
循环引用之String 当在block内部使用成员变量的时候,比如 @interface ViewController : UIViewController { NSString *_string; ...
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
在前面的博客中已经介绍了如何连接SQLite数据库,并且简单的查询和遍历结果集.在前面用到了sqlite3_stmt *stmt,也就是预编译后的SQL语句.在本篇博客中会了解一下sqlite3_st ...
- (0032) iOS 开发之Block 的基础用法及注意事项1
该文章参考多篇文章,已记不清,如有问题请联系我. 参考:http://blog.csdn.net/zm_yh/article/details/51469275 Block理解 1. Block执行的代 ...
- Flutter开发之Dart语言基础
Flutter 发展历史 Flutter是Google开发的一款用于帮助开发者在iOS和Android两个平台构建高质量原生应用的全新移动UI框架.说到Flutter,很多同学可能会将它和下面的几个词 ...
- iOS开发之C语言---for循环
1.for循环介绍 语法:for(表达式1:表达式2:表达式3) { 循环体: } 语义: 第一步:先执行表达式1,再跳转到表达式2 第二步:判断表达式2是否为真,如果为真则跳转到第三步,如果为假,那 ...
- ios开发之OC基础-类和对象
ios开发之OC基础-类和对象 本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录 ...
最新文章
- Direct2D教程(三)简单几何图形
- ecdf函数_关于ecdf函数的使用问题
- C#编程规范--控件命名篇[转]
- 高性能计算战火再度升级,科技综合实力竞争少不了它
- 统一修改文件下所有图片大小 Python3
- php-ml案例,AppML 案例原型
- Leecode题解汇总(附题型归类)
- 【EPS精品教程】史上最牛EPS说明文档大全(23个PDF文档)
- C语言:几种字符输入函数的区别
- 编程中的蛇形填空问题_PCB—蛇形线的作用,这次真的是把你搞懂了
- 关于linux下制作静态库
- (王道408考研数据结构)第七章查找-第二节3:分块查找
- 通过Nethogs查看服务器网卡流量情况
- 基于MFC和OpenCV的摄像机定标与立体匹配测试程序
- android studio调整字体大小,如何在Android Studio中增加字体大小?
- 2022年高处安装、维护、拆除操作证考试题库及在线模拟考试
- 学术-物理-维空间:二维空间
- Hackintosh相关资源站
- ecshop Strict standards: Only variables should be passed by reference in flashplay.php on line 181
- 【计算机图形学】结课大作业——光照模型(3D场景)
热门文章
- appium使用教程python_appium使用教程(一 环境搭建)-------------2.安装部署
- pdo调用mysql存储过程_获取out参数值问题_调用Oracle存储过程并获取out参数值-阿里云开发者社区...
- codevs——1436 孪生素数 2
- Easy machine learning pipelines with pipelearner: intro and call for contributors
- 为了健康,别做这20件事
- 游戏文件系统(a11s)
- 用户列表 html,用户列表.html
- java kafka 开发,Kafka JAVA API开发-基础案例
- 查看Windows上运行程序的异常日志
- Unity自定义Editor简明教程