• 如果*p被()包住,说明指针变量p将来指向的是函数
 //声明一个指针变量
//int (*p)(int, int) = sum;
int (*p)(int, int);
p = sum; // 如果*p被()包住,说明指针变量p将来指向的是函数 // 最左边的void说明p指向的函数没有返回值
// 最右边的()说明p指向的函数没有形参
void (*p)(); // 函数名test就是test函数的地址
// 将test函数的地址赋值给了指针变量p
// 指针变量p成功指向了test函数
p = test; // 利用指针变量p间接调用了test函数
//(*p)(); //test();
p();
  • 结构体占用的空间大小

默认情况下,一个结构体变量所占有的存储空间是所有成员的总和。

sizeof计算的结构体所占用存储空间时,返回的值必须是最大成员的倍数。

  • 结构体的省略写法

  省略了结构体的名称,这种方法没有重用性。

  在结构图的最后加入的内容是  同时定义的变量。

    struct
{
double width;
double height;
} s;

  注意: 如果想给结构体使用{}的方式一次性赋值,只能在定义变量的同事进行。

  • 结构体作为函数参数时,只是成员的值传递(修改函数内部的结构体,并不影响外面的结构体)
struct Person {
int age;
}; // 这种方式是值传递, 不会真的改变nochange的值
void changePersonWithAge1(struct Person nochange) {
nochange.age = ;
} // 这种传递的是指针,指针指向同一个内容,可以真正改变
void changePersonWithAge2(struct Person *change) {
// (*change).age = 100;
change->age = ; // 等价于上面那行。
} int main()
{
struct Person p1 = {};
// changePersonWithAge1(p1);
changePersonWithAge2(&p1); // 引用传递,要传递指针 printf("%d\n", p1.age); }
  • 宏定义:

  #define 宏名 值

  #undef 宏名

  作用:宏替换,在翻译之前,将代码中的所有宏名都替换成对应的值。

  宏名最好都用大写,跟函数区分开。可以使用在任何地方(代码段中,头部,任何地方)

// 带参数的宏定义
// 宏替换只是纯粹的文本替换,把左边的宏换成右边的东西,并不会进行任何运算
// 参数和结构都必须用()包住
#define PING_FANG(x) ((x)*(x))
  • 预处理指令

    不能递归包含: 自己包含自己,a.h include a.h

    不能交叉包含:a.h incldue b.h, b.h include a.h

    防止.h的文件内容被包含多次。用预处理命令。  文件名用A_H的方式来定义。

 #ifndef 文件名
#define 文件名 ..文件内容.. #endif
  • typedef 起别名  

  typedef int Myint

  typedef char * String1 

struct Person {
int age;
}; // 给结构体类型起个别名 :Stu
typedef struct Person Student; // 此结构类似与上面的内容。 是上面两行的缩写
typedef struct Dog {
int age
} WangCai;
  • 指针的使用范围

  需要间接的修改某个变量的值。

IOS学习之路-- 指针&宏函数的更多相关文章

  1. IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路

    在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...

  2. 浅谈iOS学习之路(转)

    转眼学习iOS已经快两年的时间了,这个路上有挫折也有喜悦,一步步走过来发现这个过程是我这一辈子的财富,我以前的老大总是对我说,年轻就是最大的资本(本人91年),现在才算是慢慢的体会到,反观自己走过的这 ...

  3. 浅谈iOS学习之路

    转眼学习iOS已经快两年的时间了,这个路上有挫折也有喜悦,一步步走过来发现这个过程是我这一辈子的财富,我以前的老大总是对我说,年轻就是最大的资本(本人91年),现在才算是慢慢的体会到,反观自己走过的这 ...

  4. IOS学习之路--OC的基础知识

    1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...

  5. 纪录我的iOS学习之路

    学习资料的网址 田伟宇(Casa Taloyum)有几篇介绍iOS架构的文章,一级棒!原博客链接. iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方 ...

  6. 我的IOS学习之路(三):手势识别器

    在iOS的学习中,对于手势的处理是极为重要的,如对于图片,我们经常需要进行旋转,缩放以及移动等.这里做一下总结,详见代码. - (void)viewDidLoad { [super viewDidLo ...

  7. iOS学习之路十三(动态调整UITableViewCell的高度)

    大概你第一眼看来,动态调整高度是一件不容易的事情,而且打算解决它的第一个想法往往是不正确的.在这篇文章中我将展示如何使图表单元格的高度能根据里面文本内容来动态改变,同时又不必子类化UITableVie ...

  8. ios学习之旅---指针也不难

    1.认识指针 #include <stdio.h> //基本数据类型作为函数參数传递是值传递 //void moveFront(int x ,int y) //{ // x = x + 2 ...

  9. IOS学习之路七(使用 Operation 异步运行任务)

    在 application delegate 头文件(.h)中声明一个 operation 队列和两个 invocation operations: #import <UIKit/UIKit.h ...

随机推荐

  1. 【性能诊断】四、单功能场景的性能分析(RedGate,找到同一个客户端的并发请求被串行化问题)

    问题描述: 客户端js连续发起两个异步http请求,请求地址相同,但参数不同:POST http://*.*.*.*/*****/webservice/RESTFulWebService/RESTFu ...

  2. HTML页面上获取鼠标的位置(备忘)

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  3. CUICatalog: Invalid asset name supplied: (null) _configureCellForDisplay:forIndexPath

    1.CUICatalog: Invalid asset name supplied: (null) 如果连续出现几个这样的错误,表示UIImageView为空 那么就需要检查UIImageView是否 ...

  4. linux杂谈

    1. 目录的stick位 一般情况下,如果一个用户对一个目录有写权限,那么他就可以删除该目录下的文件,即使这些文件不是他的.为了防止这种情况,我们需要为目录设置stick位: chmod a+t yo ...

  5. php特殊字符过滤,html标签处理

    1,magic_quotes_gpc  默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET.POST 和 COOKIE 数据自动运行 addslashes().不要 ...

  6. LVS包转发模型和调度算法(转)

    LVS简介 Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来 讲, CPU.I/O处理能力很快会成为瓶颈.由于单台 ...

  7. android学习笔记34——ClipDrawable资源

    ClipDrawable ClipDrawable代表从其他位图上截取一个“图片片段” 在XML文件中定义ClipDrawable对象使用<clip.../>元素,该元素的语法为: 以上语 ...

  8. jdk RSA算法类使用

    package com.security.rsa; import java.security.Key;import java.security.KeyFactory;import java.secur ...

  9. 45. Jump Game II

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  10. xubuntu手记

    一. xfce下intelij快捷键冲突 window manager 快捷键 keyboard快捷键