常量与变量的区别:
常量:可读不可写。
变量:可读可写。
常量定义的两种方法:
const int b = 10; //定义一个int类型的常量b为10 [1]
#define Pai 3.14159; //定义一个常量Pai [2]
常量不是左值(放在赋值号左边的值),所以不能给赋值。
define相当于替换,此时Pai只是相当于3.14159的别名,在编译期间用3.14159去取代Pai的值.
define的本质是替换,所以不能加;号,加上分号会一起被替换
举例:
#include
void main(){
int a = 10;
a = 100; //变量a可以再次赋值进行修改。
const int b = 10;
// b = 100; //常量b不能再次赋值进行更改。
printf("this is a: %d\n",a);
getchar();
}
#include
void main(){
#define a 100
printf("a is :%d\n",a);
printf("b is :%d\n",a*a);
getchar();
}
原理:
#include
#define 返回值 void
#define 主函数 main
返回值 主函数(){
printf("hello"); //正常运行
getchar();
}
实战:
gcc不行,gcc必须是英文字母,vs可以
define.h
#include
#include
#define 给老夫跑起来 main
#define 四大皆空 void
#define 打印 printf
#define 给老夫执行 system
#define 你好天朝 "hello china"
#define 记事本 "notepad"
void go(){
system("tasklist");
}
#define 查看进程 go();
data.c
#include "define.h"
四大皆空 给老夫跑起来(){
打印(你好天朝);
给老夫执行(记事本);
查看进程 //去掉分号
}
源程序:
#include
#include
void main(){
printf("哈喽,我二档");
system("notepad");
getchar();
}
使用define原理进行替换后(实现加密效果):
1.h文件
#include
#include
#define _ void
#define __ main
#define ___ (
#define ____ )
#define _____ {
#define ______ }
#define _______ printf
#define ________ system
#define ____2____ ;
#define ____3____ "halo,ha"
#define ____2____ "notepad"
#define ____2____ ;
#define ____2____ ;
data.c
#include "1.h"
_ __ ___ ____ _____ _______。。。。。。。。。。。。。______
#include
//第一种
#define name "张三"
#define age 30
//第二种
const char namestr[] = "张思"; //namestr是几个字符拼在一起,char就是字符。
const int ageint = 40;
void main(){
printf("我的名字是:%s,年龄是%d\n",name,age);
printf("姓名是:%s,年龄是:%d\n",namestr,ageint);
getchar();
}
low:
int a = 10;
int b = 20;
int temp;
temp = a;
a = b;
b = temp;
printf("\n a:%d,b:%d",a,b);
high:
int a = 10;
int b = 20;
a = a+b; //乘除同理
b = a-b;
a = a-b;