C语言基础教程 第一讲 变种 hello world

茵蒂克丝

  1. hello world 的日常
  2. printf 函数简介
  3. #define 宏定义字符串替换
  4. 宏定义编写中文C程序
  5. typedef 定义中文类型

常规的 hello world

新建项目

【文件】-> 【新建】 -> 【项目】 -> 【空项目】 -> 输入【项目名称】 -> 选择一个专门放代码的【文件夹】 -> 【确定】
按照上述步骤建好了一个空项目之后, 整个项目内应该是空荡荡的, 什么都没有. 这个时候我们找到【解决方案资源管理器】接着:

添加文件

【源文件】-> 【添加】 -> 【新建项】 -> 选择【C++文件】 -> 输入【名称】 -> 【确定】
需要注意的是, 生成C语言的 .c 文件需要输入的【名称】以 .c 结尾 如 hello.c

输入代码

#include <stdio.h>	// 引用 stdio 函数库 prnitf出处
#include <stdlib.h> // 引用 _sleep休眠函数出处

// 主函数 程序入口
int main()
{
	// 在屏幕上打印 hello world
	printf("hello world");
	// 程序休眠5秒
	_sleep(5000);
	// 函数结束, 返回0
	return 0;
}

printf 函数简介

出处:
作用: 基本输出函数, 将文字输出到屏幕上

函数原型:
int printf(const char *str, … );

将str所指向的字符串输出到屏幕上

占位符

所要输出的字符串中间可能有不确定的地方, 这个时候就需要用到占位符.占位符的意思是: 不知道要输出什么,具体要看后面的参数,只是这里先占个位置.
不过由于变量的类型不同,不知道要占多大的位置,所以占位符号要能表明其参数的类型.

常见占位符:

%d  十进制整数
%c  单个字符
%s  字符串
%f  小数

使用示例:

#include <stdio.h>	// for printf
#include <stdlib.h> // for _sleep

int main()
{
	printf("整数	: %d n", 233);
	printf("单个字符: %c n", 'A');
	printf("字符串	: %s n", "hello");
	printf("小数	: %f n", 3.14);

	_sleep(5000);	// 程序休眠5秒
	return 0;
}

PS: n 为【换行】的【转义字符】

#define 宏定义字符串替换

#define 学名宏定义。类似这种以 ‘#’ 井号开头的命令均为预处理指令。预处理的意思就是在编译之前预先处理。而单词 define 意思是【定义】,其作用就是定义一个【字符串替换】,用来代表名称学名叫做【宏】

使用方法:

#define 【宏名】 【替换字符串内容】

例如

#include <stdio.h>	// for printf
#include <stdlib.h> // for _sleep

// 定义了一个【宏】, 名称为 【PI】 其替换内容为 【3.14】
#define PI 3.14 	

int main()
{
	printf("PI 的值为	: %f n", PI); // 相当于使用 3.14
	// 圆面积公式 π 乘以 r的平方 
	printf("半径为2的圆面积为 : %f n", PI * 2 * 2); 
	_sleep(5000);
	return 0;
}

注意带小数的参数,对应 printf 占位符为 %f

宏定义编写中文C程序

#include <stdio.h> 	// 引用 printf 输出
#include <stdlib.h> // 引用 休眠函数

#define 主函数 main
#define 返回 return 
#define 打印 printf
#define 休眠 _sleep

整数 主函数()
{
	打印("你好, 世界!!");
	休眠(5000);
	返回 0;
}

中英文标点切换
请注意设置英文标点符号, 程序中不要出现中文标点符号
如:

休眠(5000);

是不行的, 请使用英文标点

休眠(5000);

主流的输入法都有设置【默认标点】的,各位可以自行设置,中英文之间可以使用【shift】键快捷切换。
注意,请使用visual studio 2008 以上版本

typedef 定义中文类型

属性 关键字
type 【类型】
define 【定义】

typedef 的意思就是【类型定义】

作用是定义某个类型的同义类型

例如:

typedef float money;

这样就定义了一个【float】类型的同义类型【money】类型该【money】类型本质上还是【float】类型,只不过名字换了一个

#include <stdio.h> // 引用printf
#include <stdlib.h> // 引用 休眠函数

#define 主函数 main
#define 返回 return 
#define 打印 printf
#define 休眠 _sleep

/* 定义中文类型 */
typedef int 整数;

整数 主函数()
{
	整数 i = 233;
	打印("你好, 世界  %d!!", i);
	休眠(5000);
	返回 0;
}

C语言 关键字

很常用的sizeof

sizeof 获取类型或变量所占空间大小

基本类型定义

void 空类型
char 字符类型
int 整数类型
short 短类型
long 长类型
float 小数类型(单精度)
double 小数类型(双精度)

类型自定义

struct 结构体
union 共同体
enum 枚举类型
typedef 定义类型同义字

不同的类型在不同的系统和不同的编译环境下所占空间大小不尽相同, 所以想要知道该类型所占空间大小请使用 sizeof 关键字
例如像查看 字符类型 所占空间大小可以:

printf("%d", sizeof(char) );// 查看 char 类型(字符类型) 所占空间大小

查看具体一个整数类型变量 所占空间大小可以:

int num = 10;				// 定义一个整数变量 num 并赋值为 10
printf("%d", sizeof(num) );	// 查看变量 num 所占空间大小

查看自定义类型所占的大小

// 定义一个结构体类型 student
struct student {
	char name[10]; 	// 自定义类型成员 name 数组
	int age;		// 自定义类型成员 age
};
printf("%d", sizeof(struct student) );	// 查看 struct student 类型所占空间大小

类型符号限定

signed (默认省略) 有符号变量,变量最高位用来做符号位,有正负值
unsigned 无符号变量,无正负值

内存状态修饰

auto (默认省略) 变量内存自动分配(函数结束会释放)
static 变量分配静态内存(函数结束不会释放)
const 声明常量,变量只读,除了初始化不能修改

流程控制

if 条件语句
else 条件语句否定分支(与 if 连用)
switch 根据随后的值来跳转
case switch的值等于case的值, 则执行case后的语句
default case条件都不满足时, 默认执行
for 一种循环语句
while 循环语句的循环条件
do 循环语句的循环体
goto 无条件跳转语句
break 结束当前循环
continue 结束该次循环, 进入循环的下一次

其它常用

extern 拓展声明,常用于在其它文件中引用变量
return 函数返回

不常用

register 声明寄存器变量
volatile 说明变量在程序执行中可被隐含地改变

centos 开放80端口

ping 也可以通,但是就不能http访问,
检查一下端口,发现80端口被那防火墙关了,没办法,只能开启此端口,

 vi /etc/sysconfig/iptables

请在:

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

这一句上面添加一句:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

然后重启防火墙

/etc/init.d/iptables restart

相关命令

 
# 查看防火墙的状态
/etc/init.d/iptables status
# 查看80 端口是否占用   
lsof -i tcp:80
# 查看已经连接的服务端口 (ESTABLISHED)  
netstat -a
# 查看所有的服务端口(LISTEN,ESTABLISHED)  
netstat -ap

CentOS 升级 python2.7

CentOS 很多自带的Python版本是2.4.3,但是目前许多基于Python的应用软件要求的Python版本应要高于2.4(如iotop、nodejs等要求Python版本至少是2.6以上)

wget -c http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
tar jxvf Python-2.7.3.tar.bz2
cd Python-2.7.3
./configure 
make && make install

自此,python2.7安装后路径默认是在/usr/local/lib/python2.7

#查看Python版本:
/usr/local/bin/python2.7 -V

建立软连接,使系统默认的python指向python2.7

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python2.7 /usr/bin/python
#检验python指向是否成功
python -V  #查看默认python版本

由于yum是基于python2.4.3工作,这里要重新yum的调用

#vi /usr/bin/yum

将第一行显示的 “#/usr/bin/python” 修改为 “#/usr/bin/python2.4” 保存即可。