#运算符:用于在预编译期将宏参数转换为字符串

#define CONVERS(x)  #x   //注:没用双引号包括。

不同类型的指针占用的内存空间大小相同。

局部变量 定义:

a[5];

打印a[i]时,a[i]为随机数。

若定义a[5]={1,2};

打印时,a[0]=1;a[1]=2;a[2]=a[3]=a[4]=0;

数组地址与数组名:

1.数组名代表数组首元素的地址。  a=&a[0];

2.数组的地址需要用取地址符号&才能得到 (&a)

3.数组首元素的地址值与数组的地址值相同。

4.数组首元素的地址与数组的地址是两个不同的概念。

a+1:(unsigned int)a+sizeof(*a)//加上一个元素大小。

&a+1:(unsigned int)(&a)+sizeof(*&a)//加上整个数组大小。

指针和数组

编译器对数组和指针处理不同。

处理指针:一次寻址操作。

char *p=“HW”

访问p时->先找到内存空间->再从内存空间取得地址->根据地址找到HW。(做了一次寻址操作)

处理数组:无寻址,直接去访问。

char p[] = "HW"

指针的运算:与整数的运算规则为

P+n:(unsigned int)p+n*sizeof(*p);

指针之间的减法:注此指针必须类型相同

P1-P2:((unsigned int)p1-(unsigned int)p2)/sizeof(type);

结论:

1.当指针P指向一个同类的数组的元素时:

P+1:将指向下一个元素。

P-1:将指向上一个元素。

2.当2个指针指向同一个数组中的元素时,指针相减才有意义,为指针所指向元素的下标差。

堆区:申请的内存空间 heap。

栈区:局部变量  stack

静态区:静态变量,全局变量空间。

只读区:分配常量和程序代码空间

在main.cpp

int a=; //全局初始化区
char *p1;//全局未初始化区
main()
{
int b;//栈区
char s[] = "abc";//栈区
char *p2; //栈区
char *p3 = "";123456在常量区,P3在栈区
static int c = ;全局(静态)初始化区
P1=(char*)malloc(); //堆 }

求一个数组中元素的个数:

DIM(a) = sizeof(a)/sizeof(*a);

下标VS指针:

1.从理论上而言,当指针以固定增量在数组中移动时,其效率高于下标产生的代码(下标时,乘法很耗时)。

2.当指针增量为1且硬件具有硬件增量模型时,表现更佳。

最新文章

  1. linux 文件系统
  2. 解决vsftpd的refusing to run with writable root inside chroot错误
  3. Python::OS 模块 -- 文件和目录操作
  4. Linux下安装firefox最新版
  5. laravel框架总结(二) -- blade模板引擎
  6. 最短路--hdu2544
  7. Android UI 使用HTML布局(直接打开server网页)
  8. VMware虚拟机中调整Linux分区大小手记(转发)
  9. 一、iOS中的事件可以分为3大类型
  10. delphi 子窗体只能最小化不能关闭的解决方案
  11. Python 字符串转JSON; 先装字典在转JSON; json.dumps(d)
  12. hdu6440 Dream(费马小定理)
  13. css3-文本新增属性
  14. webservice-jdk客户端代码
  15. 如何在HTML 5中拖动光标图标?
  16. 使用Log4J监控系统日志邮件警报
  17. P4tutorial实战
  18. fragment在水平/垂直时的应用
  19. 快速搭建YUM源和yum使用
  20. PgSql备份pg_dump与还原手记pg_restore(转)可以直接跳转至最后面的示例进行查看

热门文章

  1. 【剑指offer】翻转单词顺序
  2. sed替换
  3. hrbustoj 1104:Leyni, LOLI and Line(解析几何,斜截式的应用)
  4. Linux kernel parameter command line设置
  5. MySQL [Err]1449 : The user specified as a definer ('root'@'%') does not exist
  6. print多重打印
  7. Python零碎(一)
  8. eclipse中的SVN文件还原到历史版本
  9. jQuery返回顶部实用插件YesTop
  10. 160606、springmvc中使用Spring Mobile