learn C on the mac 读后笔记
phper 学习c的一点笔记。参考资料 learn C on the mac
图书地址--http://pan.baidu.com/s/1eQBW2hO
源码地址--http://pan.baidu.com/s/1eQGGkE2
1,简单的创建就不讲了,从最基本的hello word 开始吧。
//引入文件
#include <stdio.h>
//main函数
int main(int argc, const char * argv[])
{
// 输出,尾部换行,最后返回0
printf("Hello, World!\n");
return 0;
}
花键+R运行代码输出结果。
这里讲下从终端编译并运行代码。
cd 进到根目录,我们用gcc编译 -o指定文件名。我们上面的文件名是main.c ,so
gcc -o main.out main.c
ls 查看多了一个 main.out 文件。嗯,还记得我们linux上编译安装php么?so ./main.out 来运行文件,输出 Hello, Word!
好运行完毕。
----------有啥用 ? 恩,原来我们定时执行一段脚本,比如晚上1点,将今天新增加的数据导入solr,原来是用crontab 执行一段php脚本,,现在你可以执行一个编译过的c,用来解决php解决不了的问题。
2,函数的声明,来看下面代码。
#include <stdio.h>
void SayHello( void );
int main (int argc, const char * argv[]) {
SayHello();
return 0; }
void SayHello( void ) {
printf( "Hello, world!\n" );
}
void SayHello 这个函数,除非你写在int main的上面,否则在用的时候必须先声明,python,java,Objective-C都是如此。脚本语言除外,js,php不受此限制。
3,接下来讲的是1byte=8bit。一个bit只能存0或1。所以1byte=2的8次方,即能存0-127共128个数字。
然后讲的是 ++ - -.
int i=2,j;
j = ++i;则j等于3,难理解的是 j= i++;j等于2,i 等于3,而++的优先级高于 = 。
书上有符号优先级图标,这里不讲了。
3,printf( "Looping: %d\n", i );,%d输出的i 的值,%d是整数类型,类似的还有
%d, %i,代表整数,%f-浮点,%s,字符串,%c,char. %p 指针,%fL 长log,%e科学计数,%g 小数或科学计数
4,下面就是C语言传的神呼其神的指针了。
指针有太多可说的东西,理解下指针。
#include <stdio.h>
int main( void ) {
int myInt;
int *a;
a = &myInt;
scanf("%d", &myInt);
printf("myInt是 %d\n", myInt);
printf("myInt的指针是 %p\n", a);
printf("通过指针访问myInt是 %d\n", *a);
}
还有这个,
#include <stdio.h>
void SquareIt( int number, int *squarePtr );
int main (int argc, const char * argv[]) {
int square;
SquareIt( 5, &square );
printf( "5 squared is %d.\n", square );
return 0;
}
void SquareIt( int number, int *squarePtr ) {
*squarePtr = number * number;
}
根php里的引用&,用法相似,但引用非指针,php里的引用只不过是变量的别名。
5,数据类型,两点给我印象深刻,C里没bool类型,多数情况用1,0表示,。C里也没有string类型,可声明char 数组装string。声明数组前面可加任何C的合法类型,这里就涉及到占用内存问题了。
6
对文件的操作,基本跟php一样。
7,第11章可能是本书最有意思的一章了,讲了指针的用法,递归函数,递归加引用的用法,二叉树,二叉树的搜索,函数的指针,初始化,
和创建你自己的数据类型,包括上面的string,和bool。
learn C on the mac 读后笔记的更多相关文章
- Learn Objectvie-C on the Mac 2nd Edition 笔记
Chapter 1Apple’s Cocoa (for OS X) 和 Cocoa Touch (for iOS) toolkits 都是用 Objective-C写的. Chapter 2 (1) ...
- Mac和iOS开发资源汇总
小引 本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按command+D). 今天(2013年7月19日)收录了许多中文网站和博客.大家一定要去感受一下哦. 如果大 ...
- 【转】Mac和iOS开发资源汇总—更新于2013-07-19
小引 本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按command+D). 今天(2013年7月19日)收录了许多中文网站和博客.大家一定要去感受一下哦. 如果大 ...
- (转载)Mac和iOS开发资源汇总—更新于2013-07-19
(转载)http://beyondvincent.com/2013/07/18/resources-for-mac-and-ios-developers/ 小引 本文主要汇集一些苹果开发的资源,会经常 ...
- Mac和iOS开发资源汇总—更新于2013-10-14
小引本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按command+D).今天(2013年10月14日)收录了answer哥(黄爱武)的博客,欢迎大家围观! 今天( ...
- 【IOS】Mac和IOS开发资源汇总
本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按**command+D**). 今天收录了许多中文网站和博客.大家一定要去感受一下哦. 如果大家有知道不错的站点,可 ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
- iOS 学习资源
这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...
- object-c学习1
因为公司需要,开始看object-c,虽然还没ios系统,但现学下语法. 第一个例子不应该是helloWorld吗?但<Learn Objective-C on the Mac>书上不是. ...
随机推荐
- Java中synchronized注意点
之前一直以为 synchronized 加在方法前面就只有一个线程能访问了,项目中碰到一个问题,一个类的不同对象,同时访问加了 synchronized的方法 同样是可以访问的,那是因为 synchr ...
- JQuery DataTable插件
参考文件: http://blog.csdn.net/xuechongyang/article/details/8424897 http://blog.csdn.net/llhwin2010/arti ...
- 如何用cocoapods 来管理项目中的第三方框架?
一.安装 1.如果以前安装过,升级到10.10后工作不正常,可以先删除cocoapods $ sudo gem uninstall cocoapods ----------------------- ...
- Find the k-th Smallest Element in the Union of Two Sorted Arrays
(http://leetcode.com/2011/01/find-k-th-smallest-element-in-union-of.html) Given two sorted arrays A, ...
- 在C#调用C++的DLL方法(二)生成托管的DLL
写操作之前,还是扼要的说一下托管与非托管C++的区别好了,其实我也并没有深入了解过托管C++的特点所在,其最大的特征就是可以由系统来调试回收相关的代码资源,跟C#的特性一样,只是编程风格跟C++类似而 ...
- HTML+CSS笔记 CSS进阶再续
CSS的布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上, ...
- setTimeout 虚假的“异步”
看这篇http://www.laruence.com/2009/09/23/1089.html 所以实际上 setTimeout更像是任务按照队列执行 经过setTimeout设置后任务放在了队尾 ...
- tomcat应用转到weblogic上时的问题
昨天将一个tomcat环境下调试通过的报表demo应用发布到weblogic上做测试,结果发现好多问题.总结了一下,主要有这么几点: 1.使用log4j的问题. tomcat应用直接发布到weblog ...
- perl5 第十二章 Perl5中的引用/指针
第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用 子程序模板七.数组与子程序八.文件句 ...
- 宣布发布 Windows Azure ExpressRoute,宣告与 Level 3 建立全新的合作伙伴关系并推出关于其他 Azure 服务令人振奋的更新
在我们与世界各地的客户和合作伙伴交谈时,总会听到他们说,希望找到一个提供商帮助他们最大限度地发挥内部部署投资的作用并且能够利用云的灵活性.这是我们构建混合云策略和云操作系统愿景的基本原则.本着我 ...