那些年,大学C语言欠下的债(一)



现在由于工作原因开始搞ios,加急培训一个月开始开发工作。由于在大学C语言欠下的太多,很多OC中用到的一些C语法感觉很头疼,故趁今天工作没什么记录的空档“重温”一下C语言,弥补曾欠下的债。

1.变量修饰符

a) auto 自动存储类别。auto int a = 3int a = 3没区别,auto可以省略。(在我脑海里从来没出现这个关键字,要不是看书了还真不知道)

b) extern 常用来声明外部变量。比如:

int f(){

extern int A,B;

printf%d,%d\n,A,B);//使用

}

int A =12,B=1;//声明并初始化

也就是说在声明一个变量之前就在函数中使用到了这个变量,就需要在该函数中将这个变量声明为外部变量。因为如果不声明为外部变量,按照规定,函数外面的变量的作用域是从声明开始到文件结束,在非作用域内使用,当然是会报错的!!!

 

2.预处理

凡是以#号开头的都是预处理命令。

a) 无参宏。定义如:#define 宏名 宏表示的字符串。预处理时会将所有使用该宏的位置将宏名替换成其表示的字符串。

b) 有参宏。比如:#define max(a,b) a>b?a:b。调用时比如:f=max(1,2)会将实参带入进行计算,结果为f=2;

c) 条件编译。定义如:#ifdef 标识符1   //或者是#ifndef

程序段1

#else

程序段2

#endif

  就是说在满足标识符1所要求的条件下加载程序段1,不满足就加载程序段2,简单明了。书上看基本用于了#include命令,防止重复包含,由于oc引入了javaimport,所以我都是import进去的,谁叫我跟它熟呢。。。

 

3.指针。指针是C语言的重头戏,短时间学习让我容易晕,oc中我只要基本能知道简单的怎么用就行啦,而且感觉oc中没必要搞的像书上那么复杂吧,感觉知道表示的啥就差不多了吧:

a) int *p[n]; 定义指针数组p,有n个指向整型数据的指针元素

b) int (*p)[n];  p为指向含n个元素的一维数组的指针变量

c) int *p();  p为带回一个指针的函数,该指针指向整型数据

d) int (*p)();  p为指向函数的指针,该函数返回一个整数值

e) int **p;  p是一个指针变量,指向一个指向整型的指针变量

 

4.结构体。等同与java里面的对象,定义如:

struct stu{

int num

char sex;

};//定义结构体

struct stu boy1,boy2;//声明两个结构体变量

或者就直接在定义结构体时声明结构体变量,例如:

struct stu{

int num

char sex;

} boy1,boy2;

然后就是爱咋用咋用,之所以写下来就是看着这种方式不太习惯,不过看着看着应该也就习惯了。书中把结构体和指针各种例子组合,看上去挺复杂,挺晕,其实吧,也就是代码挤一块看着晕,想想就当java中的实体类,不就是一种自定义的类型么。。。

 

5.enumtypedefjava 中虽然也有枚举,不过我好像基本没用过。OC代码中,尼玛上来就是 enumXXX}和typeddef  XX  XX,着实看着别扭啊。赶紧看看定义吧:enum 【枚举名】 {枚举值表}

Typedef定义:typedef  原类型名  新类型名,我能说这是喜新厌旧的节奏么。。。

目前通过OC接触到的C语言困惑或别扭的地方就只有这么多,对于那些C语言的大神我一向都是很钦佩的,比方说大学时对门寝室某个,目前在浙大软件学院读研,还是高材生啊(不知道是不是看了那年的招生海报才考的,难道是看上那女的了),感觉自己智商偏低,还是搞容易上手的吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值