ALEXKK2011

The Technical Side of alexKK2011
  博客园  :: 新随笔  :: 订阅 订阅  :: 管理

char type and its pointer (1)

Posted on 2011-02-22 15:07  alexkk2011  阅读(151)  评论(0编辑  收藏  举报
//==========chartype.cpp==========
#include <iostream>
#include <string>

using namespace std;

void main()
{
    //exp.2
    //char charArray[] = {"abc", "defg"}; //编译错误初始值设定项太多
    char charArray[] = {"abcde"};
    char *charArrayPtr = charArray;
    cout << "charArray[] = {\"abcde\"}" << endl;
    cout << "charArray is : " << charArray << endl; //charArray是整个数组    
    cout << "*charArray is : " << *charArray << endl;
    cout << "charArray[0] is : " << charArray[0] << endl;
    cout << "&charArray is : " << &charArray << endl;
    cout << "*(int*)(charArray) is : " << *(int*)(charArray) << endl;
    cout << "(int*)(charArray) is : " << (int*)(charArray) << endl;
    cout << "sizeof charArray is : " << sizeof(charArray) << endl;
    cout << "sizeof char is :" << sizeof(char) << endl << endl;
    
    //cout <<  "charArray[2] is : " << charArray[2] << endl; //编译错误非法的间接寻址
    //cout << *charArray[3] << endl; //编译错误非法的间接寻址
    cout << "*charArrayPtr = charArray" << endl;
    cout << "sizeof *charArrayPtr is : " << sizeof(*charArrayPtr) << endl;
    cout << "sizeof charArrayPtr is : " << sizeof(charArrayPtr) << endl;
    cout << "*charArrayPtr is : " << *charArrayPtr << endl;
    cout << "charArrayPtr is : " << charArrayPtr << endl;
    cout << "&charArrayPtr is : " << &charArrayPtr << endl;
    cout << "*(int*)(charArrayPtr) is : " << *(int*)(charArrayPtr) << endl;
    //cout << "*charArrayPtr[1] is : " << *charArrayPtr[1] << endl;//编译错误非法的间接寻址
    
    /*
    charArray[] = {"abcde"}
    charArray is : abcde
    *charArray is : a
    charArray[0] is : a
    &charArray is : 0012FF58
    *(int*)(charArray) is : 1684234849
    (int*)(charArray) is : 0012FF58
    sizeof charArray is : 6
    sizeof char is :1

    charArray[2] is : c
    *charArrayPtr = charArray
    sizeof *charArrayPtr is : 1
    sizeof charArrayPtr is : 4
    *charArrayPtr is : a
    charArrayPtr is : abcde
    &charArrayPtr is : 0012FF4C
    *(int*)(charArrayPtr) is : 1684234849
    请按任意键继续...
    */
}