数组和指针


声明一个数组时,编译器将根据声明所指定的元素数量为为数组保留内存空间,然后再创建数组名,它的值是一个常量,指向这段空间的起始位置。

声明一个指针变量时,编译器只为指针本身保留内存空间,它并不为任何整型值分配内存空间。而且,指针变量并未被初始化为指向任何现有的内存空间,如果它是一个自动变量,它甚至根本不会被初始化。

如:

int a[5];
int *b

此时,*a是完全合法的,但表达式*b是非法的,*b将访问内存中某个不确定的位置,或者导致程序终止,另外,b++可以通过编译,但是a++不能,因为a是常量。

作为函数参数的数组名:

使用数组作为形参时,函数的声明形式可以为:

int strlen(char* string);
int strlen(char string[])

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM