IOS成长中 C语言之指针二
来源:互联网 发布:3d服装设计软件 编辑:程序博客网 时间:2024/05/17 21:48
知识点概括:
1.结构体指针
2.条件编译
3.宏
#import 与 #include相比,能防止重复导入,保证内容只复制一次
宏 只做替换(预编译器)
使用宏应注意的几个问题:
(1)定义宏时最后不能加分号(分号也会替换内容的一部分)
(2)参数要加括号
(3)对于有参宏,宏名与括号之间不能加空格
结构体指针访问结构体成员,通过指向操作符,例如:结构体指针变量->结构体成员
条件编译,根据不同的条件来编译不同的代码,编译器会将原文件编译成二进制指令,存放在代码区,条件编译经常用来调试程序
//#import 与 #include 相比,能否防止重复导入,保证内容只复制一次//#import "A.h"//#include "A.h"//#include "A.h"//#include "A.h"//#ifndef LessonPointerHigher_A_h//#define LessonPointerHigher_A_h//int maxValue(int x, int y) {// return x > y ? x : y;//}//#endif//#ifndef LessonPointerHigher_A_h//#define LessonPointerHigher_A_h//int maxValue(int x, int y) {// return x > y ? x : y;//}//#endif//#ifndef LessonPointerHigher_A_h//#define LessonPointerHigher_A_h//int maxValue(int x, int y) {// return x > y ? x : y;//}//#endif//宏 只做替换(预编译器)//命名规则: 纯大写 或者 k+驼峰(多个单词组成,每个单词的首字母大写)//#define 用来定义宏 COUNT 宏名//#define COUNT 10//#define SUM(A,B) (A * B)//使用宏应注意的几个问题://(1)定义宏时最后不能加分号(分号也会替换内容的一部分)//(2)参数要加括号//(3)对于有参宏,宏名与括号之间不能加空格//typedef struct student {// char name[100]; //存储姓名// char sex; //存储性别// int age; //存储年龄// float score; //存储成绩//}Student;////typedef struct point {// float x; //存储X的坐标// float y; //存储Y的坐标//}CPoint;////#define AAAA
//结构体指针// Student xiaoGuang = {"xiangguang", 20, 100};// printf("%s\n", xiaoGuang.name);// Student *pStu = NULL; //结构体指针变量// pStu = &xiaoGuang;// //结构体指针访问结构体成员,通过指向操作符,例如:结构体指针变量->结构体成员// pStu->age = 18;// printf("%d\n", pStu->age);// strcpy(pStu->name, "xianghuang");// printf("%s\n", pStu->name);//// pStu++; //增加的是整个结构体的大小// //*pStu 和 结构体变量 xiaoGuang 的功能是一样的 都是获取到整个结构体的内容// (*pStu).age = 88;// printf("%d\n", (*pStu).age);// (*pStu).score = 0;// printf("%.1f\n", (*pStu).score); // CPoint a = {1, 3};// CPoint b = {7, 11};// CPoint *pA = NULL;// CPoint *pB = NULL;// pA = &a;// pB = &b;// float dx = (*pA).x - (*pA).x;// float dy = (*pA).y - (*pB).y;// float length = 0; //存储距离// length = sqrt(pow(dx, dy));// printf("a---b = %.1f", length); //定义学生结构体数组// Student stu[5] = {// {"xiaomeng", 'm', 18, 100},// {"xiaolili", 'f', 20, 88},// {"xiaoheng", 'm', 22, 98},// {"xiaomian", 'm', 36, 60},// {"xiaowang", 'f', 25, 77}// };//// Student *pStu = NULL;//// pStu = stu;////// pStu->score; //访问第一个学生的成绩////// (pStu + 2)->name; //访问第三个学生的姓名;//// for (int i = 0; i < 5; i++) {//// printf("%s %d %.1f\n", (*(pStu + i)).name, (pStu + i)->age, (pStu + i)->score);//// }// for (int i = 0; i < 5; i++) {// if ((stu + i)->sex == 'm' || (stu + i)->sex == 'M') {// strcat((stu + i)->name, "优");// printf("%s\n", (stu + i)->name);// }// } // int a[COUNT] = {0};// for (int i = 0; i < COUNT; i++) {// a[i] = arc4random() % 21 + 20;// }// for (int i = 0; i < COUNT - 1; i++) {// for (int j = 0; j < COUNT - 1 - i; j++) {// if (a[j] > a[j + 1]) {// int temp = a[j];// a[j] = a[j + 1];// a[j + 1] = temp;// }// }// }// for (int i = 0; i < COUNT; i++) {// printf("%d ", a[i]);// } // int sum = SUM(3 + 2, 10) * SUM(3 + 2, 10);// printf("%d\n", sum); //条件编译,根据不同的条件来编译不同的代码,编译器会将原文件编译成二进制指令,存放在代码区,条件编译经常用来调试程序 //条件编译 第一种格式 //#ifdef 标识符 代码段1; #else 代码段2; #endif //如果标识符通过#define定义过,则编译代码段1,否则编译代码段2,#endif是条件编译的结束标志//#ifdef AAAA// int a = 10;//#else// int a = 20;//#endif// printf("%d\n", a); //条件编译第二种格式 //#ifndef 标识符 代码段1; #else 代码段2; #endif //如果标识符没通过#define定义过,则编译代码段1,否则编译代码段2,#endif是条件编译的结束标志//#ifndef AAAA// int b = 10;//#else// int b = 20;//#endif// printf("%d\n", b); //条件编译低三种格式 //#if 常量表达式 代码段1 #else 代码段2 #dendif //如果 常量表达式结果非0 编译器编译代码段1 否则编译代码段2//#if -1// int c = 10;//#else // int c = 20;//#endif// printf("%d\n", c); // printf("%d", maxValue(3, 5));
0 0
- IOS成长中 C语言之指针二
- IOS成长中 C语言之指针一
- IOS成长中 C语言之函数指针
- IOS成长中 C语言之数组二
- IOS成长中 C语言之数据类型
- IOS成长中 C语言之函数
- IOS成长中 C语言之递归
- IOS成长中 C语言之分支结构
- IOS成长中 C语言之循环语句
- IOS成长中 C语言之数组一
- IOS成长中 C语言之结构体
- IOS成长中 C语言之进制
- IOS成长中 C语言之动态内存分配
- iOS C语言之指针
- Crack C语言之-指针之二
- iOS开发之--C语言之指针
- 黑马程序员--C语言之指针<二>
- c语言之指针数组理解二
- Bosh vs Comet vs Long Polling vs Polling
- 关于双视图,叠加控制
- Zlib-基于source file的编译使用
- JSP简介
- C# OpenGl 文字显示
- IOS成长中 C语言之指针二
- JSP 开发环境搭建
- 404错误、405错误、500错误出错原因
- JSP 结构
- linux内核模块编程
- Perl语言学习笔记 day 2
- JSP 生命周期
- 在系统不同层次应该选用的工具
- JSP 语法