关键词:一维二维数组、指针
内容
A. 一句话概括今日目标完成情况
(a)学习第八章前三节 100%
(b)领工资 100%
B.具体内容
8.1 数组的指针,指针的函数运算。需要注意的一点是:指针p指向int型,int的型变量的长度为4个字节(double占8个字节),所以p+1=p+4,p+i=p+i*4.指针的算数运算与它所指向的变量类型有关。
#include<iostream>
using namespace std;
int main()
{
int a[10]={10,20,30},*p=a,i;
cout<<*p<<endl;
p++;
cout<<*p<<endl;
p++;
cout<<*p<<endl;
return 0;
}
如上面的代码一样,输出的内容依次是10,20,30.
指针-指针=整数。这个东西常用来计算两个指针之间所包含的元素的个数。 公式是这样的(指针2-指针1)/字节长度
8.2 a[i]是数组元素的下标表示法, *(a+i)是数组元素的指针表示法。
#include<iostream>
using namespace std;
int main()
{
//下标法
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a,i;
cout<<"a[i]"<<"\t"<<"p[i]"<<endl;
for(i=0;i<10;i++){
cout<<a[i]<<"\t"<<p[i]<<endl;
}
//指针法
cout<<"*(a+i)"<<"\t"<<"*(p+i)"<<endl;
for(i=0;i<10;i++){
cout<<*(a+i)<<"\t"<<*(p+i)<<endl;
}
return 0;
}
上面这些是使用不同的数组元素表示的方法来输出数组元素。要注意例题中给的四种形式都是等价的。可以看到两列不同形式输出的内容是完全相同的,可以互换。
8.3
int a[3][4],i,j;
int *p,max=a[0][0];
for(p=&a[0][0];p<&a[0][0]+12;p++){
if(*p>max)
max=*p;
}
cout<<"max="<<max<<endl;
这个是用指针寻找数组a中的最大值。简单的不像C++。
*(*(a+i)+j)是a[i][j]的指针表示法
哎,我的天,本来以为第八章前三节有多难,也就这样吧。
还打算学到三点钟的,没想到这么早就差不多了。
今天发工资,坦率地讲,还是不开心的。为啥就这么点呢?
再仔细想想,好像还是自己的原因。话说我得找个学弟来帮我打表格了。
一天到晚打表格感觉手都不是自己的了。
开个玩笑……代码还是要敲的。 今天学习时间不充足,忙了一整天,现在太困了。
明天还要早起……天杀的评估周。今天老大说我总结写得好玩,嘿嘿我今天就偏偏写短一点。
最后,感谢一下北总和副会长对我龙的支持。我就知道这回锤子一定成了。
PS:今天看到学弟学到了第九章,坦率地讲,我的心里不是不羞愧的。 所以我要发愤了,拦也拦不住。
明天虽然还是满课,但是!
C.明日计划
复习前三节,然后把第八章学完。要不然不睡觉不吃饭。天打雷劈。
我的博客:http://blog.csdn.net/andr3zzzz