------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———
上一篇和这个一个名字差了正式俩字的算是练一下手,开始正式写C语言复习笔记了!
1 工欲善其事必先利其器,第一件事先把开发环境弄好。
大学时一直在VC下编写C语言,现在换了MAC BOOK PRO,编写C语言程序有了些许的不同。
1.1 安装Xcode,在AppStore直接下载即可
1.2 老师视频中是在终端进行编译链接运行的,需要安装命令行工具
根据老师视频演示,在终端输入cc -c 文件名.c命令后,发现由于系统版本和Xcode版本原因并未出现“command not found”或者“no input files”的提示,而是出现了“'stdio.h' file not found”提示。经过度娘的帮助,发现Xcode5安装command line tool 只需要在终端输入“xcode-select --install”命令即可。
1.3 为了方便,将显示代码开发行数打开
在Xcode菜单中选择Preferences命令,单击Text Editing选项图标,选中Linenumbers复选框。
2 软件搞定开始复习
2.1总结clang指令
编译:cc –c 文件名.c
链接:cc 文件名.o
编译、链接:cc 文件名.c
运行可执行文件:./a.out
完成 练习1:用2种不同的代码方式输出下面的图案
************
** itcast **
************
#include <stdio.h>
int main()
{
printf("************\n");
printf("** itcast **\n");
printf("************\n");
printf("-----------------------------\n");
printf("************\n** itcast **\n************");
return 0;
}
犯错:前一段时间一直在用OC写东西,习惯了NSString的自动换行,第一种方法中就忘记写\n了。
2.2 关键字、标识符、注释
2.2.1标识符
只能由26个英文字母的大小写、10个阿拉伯数字0~9、下划线_组成,严格区分大小写,不能以数字开头,不可以使用关键字作为标识符。
2.2.2注释的嵌套
// 我是<span style="font-size:18px; white-space: pre;">单行注释</span> // <span style="font-family: Arial, Helvetica, sans-serif;">我是</span><span style="font-family: Arial, Helvetica, sans-serif;">单行注释</span>
// /* <span style="font-family: Arial, Helvetica, sans-serif;">我是</span><span style="font-family: Arial, Helvetica, sans-serif;">多行注释</span>*/ // <span style="font-family: Arial, Helvetica, sans-serif;">我是</span><span style="font-family: Arial, Helvetica, sans-serif;">单行注释</span>
多行注释可以嵌套单行注释
/*
// 作者:MJ
// 描述:第一个C语言程序
作用:这是一个主函数,C程序的入口点
*/
多行注释不能嵌套多行注释
/* 哈哈哈
/*嘻嘻嘻*/
呵呵呵
*/
注释的错误使用
// /*
哈哈哈
*/
printf("//itcast\n");语句中得单行注释是没有效果的,而printf(//"itcast\n");有效
2.3数据、常量、变量
2.3.1 注意
注意1:为了跟double区分开来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f。需要注意的是,绝对不能有10f这样格式的,编译器会直接报错,只有小数才允许加上f。
注意2:字符常量-单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'
注意3:变量没有初始化时不要拿来使用(下面的写法是不建议的)
int score;
printf("score=%d", score);
注意4:变量名不能相同
注意5:注意变量的作用域(当存在代码块时,变量存在创建和释放)
根据下面练习体会变量的作用域和代码块的使用
#include <stdio.h>
int main()
{
int a = 20;
int score = a + 100;
printf("%d\n",score);
{
int score = 50;
{
score = 10;
printf("%d\n",score);
}
a = 10;
}
{
score = a + 250;
printf("%d\n",score);
int score = 30;
printf("%d\n",score);
}
printf("%d\n",score);
return 0;
}
输出结果:120、10、260、30、260
2.3.2交换变量的值
可使用下面三种方法:
#include <stdio.h>
int main()
{
int a = 10,b = 20;
printf("a=%d,b=%d\n",a,b);
//使用第三方变量交换变量a,b的值
int temp;
temp = a;
a = b;
b = temp;
printf("经过第三方变量交换后a=%d,b=%d\n",a,b);
//使用第三方变量方法1
a = b - a;
b = b - a;
a = b + a;
printf("再经过方法1交换后a=%d,b=%d\n",a,b);
//使用第三方变量方法2
a = a^b;
b = a^b;
a = a^b;
printf("再经过方法2交换后a=%d,b=%d",a,b);
return 0;
}
第一种方法虽然多使用了一个变量但是更方便理解
都两种方法虽然不用声明第三方变量,但是不利于代码的可读性,仅做记忆用于面试
2.3.3 变量的存储
int a;
printf("a的地址是:%p\n", &a);
a的地址是:0x065FDF4H(0x表示十六进制)