博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios指针第二天
阅读量:5356 次
发布时间:2019-06-15

本文共 5035 字,大约阅读时间需要 16 分钟。

////  main.m//  LessonPointerPro////  Copyright (c) 2015年 池海涛. All rights reserved.//#import 
#import "Function.h"#define PI 3.1415926#define kMul(A,B) (A)*(B)////条件编译////形式1//#ifdef PI//#define kPPPI 0//#else//#define kPPPPI 1//#endif//////形式2//#ifndef kP////#define kP 3////#else////#define kP 4////#endif//////形式3//#if 0////#define kRong 0////#else////#define kRight 1////#endif//预编译指令//以#开头的叫预编译指令:预编译时期做一些文本及代码的替换工作//PI 代表宏名,3.14是预编译时期会被替换的内容int main(int argc, const char * argv[]) {// //指针,指针变量// int a = 10;// int b = 6;// change(&a,&b);// //指针与函数// //练习:交换两个数的值// printf("a = %d,b = %d",a,b); /** * int a[5] = {0}; int count = sizeof(a) / sizeof(a[0]); getArray(a,count); */ // char strArray[4][20] = {"iPhone", "iPad", "ipod", "iWatch"}; //指针数组 /** * 字符串 char *strPinter[4] = {"iPhone", "iPad", "ipod", "iWatch"}; printStr(strPinter,4); sortStrArray(strPinter,4); printStr(strPinter,4); */ //指针数据类型:Student * //指针变量 :P //初值:&student,存储的是student的地址 //指针变量 p 所占的字节: 8个字节//// Student student = {"chihaitao",'m',23,100};// // Student *p = &student; //通过指针访问结构体成员 /** * *p 相当于student结构体变量 */// printf("%s \n",student.name);// // printf("%s \n",(*p).name); /** * 方式2 CPoint c1 = {4,5}; CPoint c2 = {7,1}; CPoint *p1 = &c1; CPoint *p2 = &c2; printf("%f ", qiujuli(p1,p2)); // printf("%s \n",p->name);//通过指针,直接进行访问, ->指向操作符 //使用->输出结构体变量student中的所有成员变量 */ /** * <#Description#> Student student = {"chihaitao",'m',23,100}; Student stuArray[5] = { {"chichi",'m',25,99}, {"haihai",'w',22,98}, {"taotao",'w',23,97}, {"niuniu",'w',22,98}, {"bibi",'w',23,97}, }; //->就是指针操作 (指针)->(结构体成员) Student *stu = stuArray; //字符串不能直接赋值,字符串指针能赋值 (stu+4)->name = "fengfeng"; (stu+1)->age = 120; printf("%s",(stu + 4)->name); printf("%d",(stu+1)->age); printf("%d",stuArray[4].age); //printf("%s",m1->name); printf("%f",stu[4].score); printf("%p",(stu + 4)); printf("%p",&stuArray[4]); //按学生年龄升序排列 for (int i = 0; i < 5 -1; i++) { for (int j = 0;j < 5 - 1 - i; j++) { if ((stu + j)->age > (stu+j + 1)->age) { Student temp = *(stu + j); *(stu + j) = *(stu + j + 1); *(stu + j + 1)=temp; } } } */ //定义宏 //普通宏 //PI 代表宏名 int mul = kMul(3 + 1, 5); printf("mul = %d\n",mul); /** * 宏与函数的区别 1.宏是在预编译时期进行替换的内容,不进行任何的逻辑检测,只是简单的赋值而已,运行速度比函数快 2.宏定义十不考虑参数的类型 3.参数宏在定义时记得多加括号 4.参数宏在使用时会再目标文件中村在多个副本,会增加目标文件的大小 */#ifdef PI //如果定义了 PI printf("PI已经定义过了\n");#else printf("PI没有定义\n");#endif#ifndef PI //如果没有定义 PI printf("PI这个宏没有定义\n");#else printf("早就定义过了\n");#endif #if 1 //和条件判断if else 用法一样 printf("优衣库被查了");#else printf("你说啥 听不懂\n");#endif return 0;}

//--------Function.h

////  Function.h//  LessonPointerPro////  Created by laouhn on 15/7/27.//  Copyright (c) 2015年 池海涛. All rights reserved.//#import 
struct student{ char *name; char sex; int age; float score;};typedef struct student Student;typedef struct{ char *name; char sex; int age; float score;} Student1;struct cpoint{ float x; float y;};typedef struct cpoint CPoint;void change(int *,int *);void getArray(int *,int);void print(int *,int);void sortArray(int *,int);void printStr(char *[],int);void sortStrArray(char *[],int);float qiujuli(CPoint *,CPoint *);

//Function.m

////  Function.m//  LessonPointerPro////  Created by laouhn on 15/7/27.//  Copyright (c) 2015年 池海涛. All rights reserved.//#import "Function.h"void change(int *a,int *b){    int temp = *a;     *a = *b;    *b = temp;}void getArray(int *p,int count){        for (int i = 0; i < count; i++) {        *(p + i) = arc4random() % (100 - 10 + 1) + 10;    }    print(p,count);    sortArray(p, count);    print(p, count);}void print(int *a,int count){    for (int i = 0; i < count; i++) {        printf("%d ",*(a+i));    }    printf("\n");}void sortArray(int *a,int count){    for (int i = 0; i < count - 1; i++) {        for (int j = 0; j < count - i -1; j++) {            if (*(a + j) > *(a + j + 1)) {                int temp = *(a + j);                *(a + j) = *(a + j +1);                *(a + j + 1) = temp;            }        }    }}void printStr(char *b[],int count){    for (int i = 0; i < count; i++) {        printf("%s ",*(b + i));    }}void sortStrArray(char *str[],int count){    for (int i = 0; i < count - 1; i++) {        for (int j = 0; j < count - 1 - i; j++) {            if (strcmp(str[j],str[j + 1] ) > 0) {                char *temp = str[j];                str[j] = str[j + 1];                str[j + 1] = temp;            }        }    }}float qiujuli(CPoint *a,CPoint *b){    float x = fabsf(a->x - b->x);    float y = fabsf(a->y - b->y);    return sqrtf(x*x + y*y);}

 

转载于:https://www.cnblogs.com/wohaoxue/p/4688104.html

你可能感兴趣的文章
关于空想X
查看>>
CF1067C Knights 构造
查看>>
[BZOJ2938] 病毒
查看>>
webstorm修改文件,webpack-dev-server不会自动编译刷新
查看>>
Scikit-learn 库的使用
查看>>
CSS: caption-side 属性
查看>>
python 用数组实现队列
查看>>
认证和授权(Authentication和Authorization)
查看>>
CSS3中box-sizing的理解
查看>>
传统企业-全渠道营销解决方案-1
查看>>
Lucene全文检索
查看>>
awk工具-解析1
查看>>
推荐一款可以直接下载浏览器sources资源的Chrome插件
查看>>
CRM product UI里assignment block的显示隐藏逻辑
查看>>
AMH V4.5 – 基于AMH4.2的第三方开发版
查看>>
Web.Config文件配置之配置Session变量的生命周期
查看>>
mysql导入source注意点
查看>>
linux下编译安装nginx
查看>>
ArcScene 高程不同的表面无法叠加
查看>>
[ONTAK2010] Peaks
查看>>