• 2004-01-21

    c++入门学习笔记指针篇下(转载) - [C/C++开发专辑]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://junglesong.yourblog.org/logs/102245.html

    九、注意: 在每次使用指针前,都应该初始化。以防止指针指向空对象。 应用举例(pointer.cpp) 编译环境:Window2000 Vc6.0 #include <string> #include <iostream> using namespace std; void main() { //int * p =1, 不对,整型常量不能转换为整型指针,char * t =0 可以 //指针运算符&返回操作数的地址,此处&p,&q是p,q的地址 //要返回得到指向的地址要么正接用p,q 要么用&(*p),&(*q),指针也是 //是一种数据类型也有自己的内存地址为4个字节,8位 int * q , * p; int x =1 ,y = 2; q = &x; p = &y; cout << "p" << &p << " "<< &(*p) << " " << p <<" " << *p << endl; cout << "q" << &q << " " << &(*q) << " "<< q<<" "<< *q<< endl; //指针赋值,整个指针包含的地址、指向的对象都改变了 int * t; t = q; q = p; p = t; cout << "p" << p << " "<< *p << endl; cout << "q" << q << " " << *q << endl; //指针所指对象的赋值操作,地址不变 q = &x; //1 p = &y; //2 cout << "p" << p << " "<< *p << endl; cout << "q" << q << " " << *q << endl; //强制类型转换 //double *l; //l = (double*)*q; // q的值赋给临时变量 *t=1 *t = *q; // q的值赋给临时变量 *t=1 cout << *t <<endl; *q = *p; // q的值给q,*q=2 cout << *q <<endl; //??*p = *t; //为什么此处*p值没有改变 *p = *t; cout << *t <<endl; cout << "p" << p << " "<< *p << endl; cout << "q" << q << " " << *q << endl; //引用的使用 int count = 1; int &c = count; //声明c为count的引用,c只是count的别名,不占实际内存空间 cout << "引用"; cout << c << count << endl; //引用变量在声明时要初始化 //int &t; (错误) //t = count ; //不能用指针间接运算符复引用一引用,引用只是一变量的别名 //它不占地址空间 //cout << *c << endl; int iF = 10; const int * ciS = 0; //指向整数常量的指针,指针最好都进行初始化 int * iT = &iF; //*ciS = 100;(错误),*ciS为常量 ciS = iT; cout << ciS << " "<< *ciS <<endl; int * const icS = &iF; //指向整数的常量指针 *icS = 10; icS = iT; cout << icS << " " << *icS << endl; }

    收藏到:Del.icio.us




发表评论

您将收到博主的回复邮件
记住我