一、转义字符

 #include<stdio.h>

 void main(){
printf("hello \nworld\a");// \n换行 \a机器响一声
getchar();//等待
}
 #include<stdio.h>

 void main(){
//printf("hello world");
putchar('h');
putchar('e');
putchar('l');
putchar('l');
putchar('o');
putchar('\n');//转义字符也是一个字符
putchar('w');
getchar();
}
 #include<stdio.h>

 void main1(){
while() putchar('\a');
putchar('A');//输出一个字符
putchar('\n');//换行
getchar();
}
void main(){
//printf("\\");//只有一个“\”会报错
//putchar('\\');
//printf("\"");
putchar('\'');
getchar();
}

二、hello world的N种做法

 #include<stdio.h>

 void hello1(){
printf("hello world");
}
void hello2(){
printf("A%sB","hello world");//hello world取代%s
}
void hello3(){
printf("%c%c%",'h','e');
}
void hello4(){
putchar('h');
putchar('e');
}
void hello5(){
putchar();//ASCLL码
putchar();
}
void notepad(){//练习:用ascll码打印notepad
putchar();
putchar();
putchar();
putchar();
putchar();
putchar();
putchar();
}
void hello6(){//按照8进制输出helloworld
putchar();//前面带0表示8进制
putchar();
putchar();
putchar();
}
void hello7(){//按照16进制输出helloworld
putchar(0x68);//前面带0x表示16进制
putchar(0x65);
putchar(0x6c);
putchar(0x6c);
}
void hello8(){//按照8进制输出helloworld
putchar('\150');//8进制的150所标志的字符
putchar('\145');// '\ddd',3位八进制代表的字符
putchar('\154');
putchar('\154');
}
void hello9(){//按照16进制输出helloworld
putchar('\x68');// '\xhh',16进制数据转换成编号,查找字符
putchar('\x65');
putchar('\x6c');
putchar('\x6c');
}
void hello10(){
puts("hello world");
} void main(){
hello10();
getchar();
}

三、打开程序的n种做法

 #include<stdio.h>
#include<stdlib.h> void main(){
//char str[50]="notepad";
char str[];
//sprintf(str,"%s%s","note","pad");
//sprintf(str,"%s","notepad");
//sprintf(str,"%c%c%c%c",'c','a','l','c');
//sprintf(str,"%c%c%c%c",99,97,108,99);
//sprintf(str,"%c%c%c%c",0143,0141,0154,0143);//8进制
//sprintf(str,"%c%c%c%c",0x63,0x61,0x6c,0x63);//16进制
//sprintf(str,"%c%c%c%c",'\143','\141','\154','\143');//8进制
sprintf(str,"%c%c%c%c",'\x63','\x61','\x6c','\x63');//16进制 printf(str);
system(str);//执行指令
system("pause");//暂停
}

四、通过内存地址改变变量的值

首先设置断点,进行调试

到达第一个断点时,打印出num变量的地址,根据地址查看到该地址存储的值为01

到达第二个断点,值变成了03

到达第三个断点,值变成了05,对其进行修改,将05改成59

16进制的59就等于10进制的89,最终打印出修改后的89,而非之前的5,这就是外挂改血量改蓝改攻击力的原理(找到需要修改数据的地址,然后对其进行修改)

五、加法改值

03改成09

六、打开多个程序

有的编译器一定要把变量的定义放在最前面,而不能随时定义
char str[50];这条语句需要放在前面声明

[c/c++] programming之路(3)、转义字符及内存的更多相关文章

  1. [c/c++] programming之路(31)、位运算(二)

    一.取反的高级用法 #include<stdio.h> #include<stdlib.h> //取反的作用:末位清零 取反适用于各种位数不同的数据 void main0(){ ...

  2. [c/c++] programming之路(30)、位运算(一)

    一.取反 ~ #include<stdio.h> #include<stdlib.h> void main(){ unsigned ; //0000 1111 char的单位是 ...

  3. [c/c++] programming之路(29)、阶段答疑

    一.指针不等于地址 指针不仅有地址,还有类型,是一个存储了地址的变量,可以改变指向:而地址是一个常量 #include<stdio.h> #include<stdlib.h> ...

  4. [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝

    一.结构体存储 #include<stdio.h> #include<stdlib.h> struct info{ char c; //1 2 4 8 double num; ...

  5. [c/c++] programming之路(27)、union共用体

    共用体时刻只有一个变量,结构体变量同时并存 一.创建共用体的三种形式 #include<stdio.h> #include<stdlib.h> #include<stri ...

  6. [c/c++] programming之路(26)、结构体

    一.初始化字符串 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include&l ...

  7. [c/c++] programming之路(25)、字符串(六)——memset,Unicode及宽字符,strset

    一.memset #include<stdio.h> #include<stdlib.h> #include<memory.h> void *mymemset(vo ...

  8. [c/c++] programming之路(24)、字符串(五)——字符串插入,字符串转整数,删除字符,密码验证,注意事项

    1.将字符串插入到某位置(原字符串“hello yincheng hello cpp hello linux”,查找cpp,找到后在cpp的后面插入字符串“hello c”) 需要用到strstr字符 ...

  9. [c/c++] programming之路(23)、字符串(四)——strncat,atoi,strcmp,strlen等,以及常用内存函数

    一.strncat及自行封装实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #i ...

随机推荐

  1. Kotlin Linux下的环境搭建

    Kotlin是JVM世界里的未来主宰,不管你信不信,我反正相信了! 好吧,如果你不糊涂,就跟着我一起学学吧,哈哈 一下载https://github.com/JetBrains/kotlin/rele ...

  2. iOS UI基础-12.0 Storyboard

    storyboard创建控制器 1.先加载storyboard文件(Test是storyboard的文件名) UIStoryboard *storyboard = [UIStoryboard stor ...

  3. css省...和div 内容过多,自动换行

    1.shengluohao 就是这个... 加: overflow: hidden;/*超出部分隐藏*/ white-space: nowrap;/*不换行*/ text-overflow:ellip ...

  4. HP-UX平台Oracle启动实例遭遇:ORA-27154,ORA-27300,ORA-27301,ORA-27302

    环境:HP-UX 11.31 + Oracle 11.2.0.4 现象:在hpux安装Oracle,按业务需求配置参数后,无法启动实例. 报错如下: ORA-27154:post/wait creat ...

  5. mybatis多表关联查询之resultMap单个对象

    resultMap的n+1方式实现多表查询(多对一) 实体类 创建班级类(Clazz)和学生类(Student),并在Student中添加一个Clazz类型的属性,用于表示学生的班级信息. mappe ...

  6. nginx 日志详解及自定义日志配置

    nginx的log日志分为access log 和 error log 其中access log 记录了哪些用户,哪些页面以及用户浏览器.ip和其他的访问信息 error log 则是记录服务器错误日 ...

  7. sqli-labs(十一)(二次注入)

    第二十四关: 这关考验的是sql的二次注入. 这关是一个登陆加注册的功能点,登陆的地方没有注入,账号密码都输入输入'",页面只会显示登陆失败. 但注册账号的地方没有做过滤可以注册带有单引符号 ...

  8. apc

    转载(https://www.kancloud.cn/thinkphp/php-best-practices/40866) 使用 APC 在一个标准的 PHP 环境中,每次访问PHP脚本时,脚本都会被 ...

  9. C# HtmlDocument和HtmlNode的使用以及节点的模糊查询

    C#HtmlAgilityPack.HtmlDocument和HtmlAgilityPack.HtmlNode的使用 HtmlAgilityPack.HtmlDocument response = n ...

  10. Beta冲刺阶段3.0

    1. 提供当天站立式会议照片一张 2. 每个人的工作 (有work item 的ID) 成员 昨天已完成的工作 今天计划完成的工作 工作中遇到的困难 具体贡献 郑晓丽 完成"我的活动&quo ...