[회전]사람 을 미 치 게 하 는 프로그램 언어의 특성 을 자세히 세다.

1.C 언어의 배열
C/C++에서 a[10]는 10[a]로 쓸 수 있다.
"Hello World"[i]도 쓸 수 있어 요.["Hello World"]
2.자바 script 에서
'5'+3 의 결 과 는'53'이다.
'5'-3 의 결 과 는:2 이다.   
3.C/C++의 Trigraphs
int main() {   
    cout << "LOL??!";   
}  

int main() {
    cout << "LOL??!";
}
위의 이 프로그램 은"LOL|"을 출력 합 니 다.이것 은?!"Trigraphs"로 전환 되 었 습 니 다.아래 표 가 있 습 니 다. 
??=
#
??(
[
??/
\
??)
]
??’
^
??<
{
??!
『20008』
??>
}
??-
~
4.JavaScript 의 조건 표
아래 의 이 시 계 를 보면 왜 자 바스 크 립 트 프로그래머 가 고 통 스 러 웠 는 지 이해 하기 어렵 지 않다
''        ==   '0'          //false   
0         ==   ''           //true   
0         ==   '0'          //true   
false     ==   'false'      //false   
false     ==   '0'          //true   
false     ==   undefined    //false   
false     ==   null         //false   
null      ==   undefined    //true   
" \t\r
" == 0 //true '' == '0' //false 0 == '' //true 0 == '0' //true false == 'false' //false false == '0' //true false == undefined //false false == null //false null == undefined //true " \t\r
" == 0 //true

5.자바 의 Integer cache
Integer foo = 1000;   
Integer bar = 1000;   
  
foo <= bar; // true   
foo >= bar; // true   
foo == bar; // false   
  
//  ,     foo   bar     127   -128   (  )   
//  ,       :   
  
Integer foo = 42;   
Integer bar = 42;   
  
foo <= bar; // true   
foo >= bar; // true   
foo == bar; // true  

Integer foo = 1000;
Integer bar = 1000;

foo <= bar; // true
foo >= bar; // true
foo == bar; // false

//  ,     foo   bar     127   -128   (  )
//  ,       :

Integer foo = 42;
Integer bar = 42;

foo <= bar; // true
foo >= bar; // true
foo == bar; // true

왜 이러 지?자바 Interger Cache 에 대해 알 아 봐 야 합 니 다.다음은 관련 프로그램 입 니 다.주석 에 주의 하 세 요.

/**

     * Returns a <tt>Integer</tt> instance representing the specified

     * <tt>int</tt> value.

     * If a new <tt>Integer</tt> instance is not required, this method

     * should generally be used in preference to the constructor
     * <a href="mailto:{@link">{@link</a> #Integer(int)}, as this method is likely to yield
     * significantly better space and time performance by caching
     * frequently requested values.
     *
     * @param  i an <code>int</code> value.
     * @return a <tt>Integer</tt> instance representing <tt>i</tt>.
     * @since  1.5
     */
    public static Integer valueOf(int i) {
        if(i >= -128 && i <= IntegerCache.high)
            return IntegerCache.cache[i + 128];
        else
            return new Integer(i);
    }

5.Perl 의 이상 한 변수 들

$.   
$_  
$_#   
$$   
$[   
@_ 

이 모든 괴이 한 변 수 는 다음 을 참조 하 십시오.
http://www.kichwa.com/quik_ref/spec_variables.html
6.자바 의 이상 반환
다음 프로그램 을 보십시오.true 로 돌아 갈 것 같 습 니까?false 로 돌아 갈 것 같 습 니까? 
try {   
    return true;   
} finally {   
    return false;   
}  

try {
    return true;
} finally {
    return false;
}
자바 script 과 python 에서 그 행 위 는 자바 와 같다. 
7.C 언어의 Duff device
아래 의 이 절 차 를 너 는 알 아 볼 수 있 니?이른바 Duff Device 라 는 것 은 상당히 괴이 하 다.
void duff_memcpy( char* to, char* from, size_t count ) {   
    size_t n = (count+7)/8;   
    switch( count%8 ) {   
    case 0: do{ *to++ = *from++;   
    case 7:     *to++ = *from++;   
    case 6:     *to++ = *from++;   
    case 5:     *to++ = *from++;   
    case 4:     *to++ = *from++;   
    case 3:     *to++ = *from++;   
    case 2:     *to++ = *from++;   
    case 1:     *to++ = *from++;   
            }while(--n>0);   
    }   
}   

void duff_memcpy( char* to, char* from, size_t count ) {
    size_t n = (count+7)/8;
    switch( count%8 ) {
    case 0: do{ *to++ = *from++;
    case 7:     *to++ = *from++;
    case 6:     *to++ = *from++;
    case 5:     *to++ = *from++;
    case 4:     *to++ = *from++;
    case 3:     *to++ = *from++;
    case 2:     *to++ = *from++;
    case 1:     *to++ = *from++;
            }while(--n>0);
    }
} 

8.PHP 의 문자열 을 함수 로 사용 합 니 다.
PHP 의 어떤 용법 도 매우 기괴 하 다.
$x = "foo";   
function foo(){ echo "wtf"; }   
$x();  

$x = "foo";
function foo(){ echo "wtf"; }
$x();

9.C++에서 빈 포인터 로 정적 함 수 를 호출 할 수 있 습 니 다.
class Foo {   
  public:   
    static void bar() {   
      std::cout << "bar()" << std::endl;   
    }   
};  

class Foo {
  public:
    static void bar() {
      std::cout << "bar()" << std::endl;
    }
};

좋은 웹페이지 즐겨찾기