摘要:
1.不能简单地通过检查一个值的位来判断它的类型,类型是通过值的使用方法隐式地确定。 2.一个变量的值就是分配给这个变量的内存位置所存储的数值。 3.声明一个指针变量并不会自动分配任何内存。在指针间接访问之前,指针必须初始化,或者使它指向现有内存,或者给它动态分配内存。 4.在对指针进行间接访问操作之 阅读全文
摘要:
问题引入:为什么return函数里面的定义值可以,但是return函数里面的定义地址就有问题? 原因分析:原文见 https://zhidao.baidu.com/question/192660719.html 这个问题其实是一个很好的问题,我可以从逆向工程的角度来给你解释一下,为了回答这个问题我专 阅读全文
摘要:
双指针专题系列 问题1:LEETCODE 两数之和target问题 有序数组 题目描述:在有序数组中找出两个数,使它们的和为 target。 使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。 如果两个指针指向元素的和 s 阅读全文
摘要:
1.移位操作符:<<和>> 操作数必须是整型逻辑移位:左边移入的位用0填充算术移位:左边移入的位由原先该值的符号位决定逻辑左移与算术左移是相同的,逻辑右移与算术右移是不同的,而且只有操作数为负数时才不一样。标准说明无符号数的执行的所有移位操作都是逻辑移位,但是,对于有符号数,采用哪种移位方式取决于编 阅读全文
摘要:
1.C不具有布尔类型,测试值都是用整型表达式来代替。零为假,非零为真。 2.break语句用于永久终止循环,continue语句用于终止当前的那次循环。 3.当continue语句和break语句出现在嵌套循环的内部的时候,只对最内层的循环有用,无法影响外层的循环。如果执行continue语句,则循 阅读全文
摘要:
1.基本数据类型:整型,浮点型,指针和聚合类型(如数组和结构体)2.整型分为:字符型,短整型,整型和长整型,他们都分为有符号和无符号两种。3.对于char类型,本质上是小整型值。char的默认类型就取决于编译器,为了提高程序的可移植性和效率,通常把存储与char类型的值限制在signed char和 阅读全文
摘要:
1.编译和链接 (1)编译并链接一个C语言的程序时,使用gcc加C语言文件名即可,中间会产生.o的目标文件,当链接完成之后就会被删除。 (2)编译并链接几个C语言程序时:使用gcc加几个C语言文件名即可,中间用空格分隔,此时不会删除产生的目标文件,这样就可以允许在对某些程序修改之后,只对其中的修改后 阅读全文
摘要:
//命令结构iptables -t TABLE - 操作方式 规则条件示例:1.1列出filter表所有内容:iptables -t filter -L 红色框内为默认路由,及无法匹配到任何一条规则时采用的策略 1.2列出filter表INPUT链内容:iptables -t filter -L I 阅读全文
摘要:
过程分析:当使用者在计算机上运行一段程序时,该应用程序一定会事先定义一种数据交换方法(应用层通信协议),接着必须确定数据传输方式,根据数据性质,决定数据传输方式(TCP/IP),接着为了能将数据传输到正确的目的端,我们使用网络上每台计算机唯一的识别码IP地址,作为接收端和发送端的地址,但由于IP地址 阅读全文
摘要:
iptables: 定义:命令行工具,用来和内核的netfilter模块通信; 作用:用来管理网络,做一个流量转发; DNAT:目标地址映射 应用场景:内网做对外服务器; 电脑(外部用户):10.10.10.10(src) 公网服务器:22.22.22.22(dst) 此时,一条TCP(src - 阅读全文