数组名可作为指针常量

来源:互联网 发布:网络诈骗立案金额标准 编辑:程序博客网 时间:2024/05/22 11:41

三个结论:

(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;

(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量

(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址

  1. #include <iostream.h> 
  2. int main(int argc, char* argv[])  
  3. {  
  4. char str[10];  
  5. char *pStr = str;  
  6. cout << sizeof(str) << endl;   //输出是10
  7. cout << sizeof(pStr) << endl;  //输出是4
  8. return 0;  


数据名可能失去其数据结构内涵:

(1)数组名作为函数形参时,在函数体内,其失去了本身的内涵,仅仅只是一个指针

(2)同时,还失去其常量特性,可以作自增、自减等操作,可以被修改

  1. #include <iostream.h> 

  2. void arrayTest(char str[])  
  3. {  
  4. cout << sizeof(str) << endl;  //输出结果为4
  5.  
  6. int main(int argc, char* argv[])  
  7. {  
  8. char str1[10] = "I Love U";  
  9. arrayTest(str1);   
  10. return 0;  

注:程序的输出结果为4

所以,数据名作为函数形参时,其全面沦落为一个普通指针它的贵族身份被剥夺,成了一个地地道道的只拥有4个字节的平民。

0 0
原创粉丝点击