#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <sys/types.h> #include <…
java.lang.Boolean public static int hashCode(boolean value) { return value ? 1231 : 1237; } JDK 1.8新增一个hashCode方法,true的hashCode为1231,false的hashCode为1237, why? https://stackoverflow.com/questions/3912303/boolean-hashcode public static int compare(bool…
首先注意,const int * p 和int const *p 是一样的,并且不管是不是*p,即使const int i和int const i也是一样的,所以我们接下来只讨论int const * p和int * const p的不同 对于这种问题,我们只用将const 的位置固定,然后再看后面的东西,一般规则是后面的东西不能在进行赋值或者修改.例如下面: #include<stdio.h> int main(int argc,char *argv[]) { int i = 10; int…
这俩兄弟长得实在太像,以至于经常让人混淆.然而细心领会和甄别就会发现它们大有不同. 前者是指针数组,后者是指向数组的指针.更详细地说. 前: 指针数组;是一个元素全为指针的数组.后: 数组指针;可以直接理解是指针,只是这个指针类型不是int也不是char而是 int [4]类型的数组.(可以结合函数指针一并看看......) int*p[4]------p是一个指针数组,每一个指向一个int型的int (*q)[4]---------q是一个指针,指向int[4]的数组. 两者在定义的时候如下:…
在说这个问题之前,先说两个需要知道的背景知识: (1)语言的类型的强制转换不会修改原来的数据,会另外的开辟一个临时的或者程序中指定的空间来存储强制转换后的值. (2)C++引用的实现是在符号表中动了手脚,把自己的变量符号对应的内存地址写成了它所引用的那个变量的内存地址了. (3)C++的cout函数的执行,是根据变量的名称找到对应的内存地址,然后根据变量的类型从内存中抓取相应的数据. 有了上面的两个知识点,看下面的程序: #include <iostream> using namespace…
package faceobject; import java.util.Arrays; public class Test { /** 加密问题 数据是小于8位的整数 先将数据倒序,然后将每位数字都加上5,再用除以10的余数代替该数据 然后将第一个和最后一个调换位置 */ public static void main(String[] args){ int x=123456; jiami1(x); System.out.println(); jiami2(x); } public stati…
把void (*signal(int signum,void(*handler)(int)))(int)分成两部分: typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 此处由于加了typedef自定义了一个新类型sighandler_t,所以第二行的函数原型看起来顺眼多了,形式跟int func(char c, int i)无异,但是如果看不懂typedef语句,这两…
问题提出 请分析此声明:void (*signal(int sig, void (*handler)(int)))(int); 求解过程 在对上面的例子作分析之前,我们需要了解C语言的声明优先级,<C专家编程>P64原文如下: 规则A规定了要按照优先级来解释声明(算是一句废话).规则C请参照本人上一篇笔记:http://www.cnblogs.com/deyuanqin/p/5705967.html.规则B的具体实践过程如下图: 本着抛砖引玉的目的,我们使用以上规则分析void (*signa…
  [cpp] view plain copy float a = 1.0f;     cout < < (int)a < < endl;     cout < < (int&)a < < endl;     cout < < boolalpha < < ( (int)a == (int&)a ) < < endl; // 输出什么?     float b = 0.0f;     cout < &l…