char (*p3)[5] = &a; 和char (*p4)[5] = a;的区别?
例1:
int main() 

char a[5]={'A','B','C','D'}; 
char (*p3)[5] = &a; 
char (*p4)[5] = a; 
return 0;
 }

例2:
int main() 

char a[5]={'A','B','C','D'}; 
char (*p3)[3] = &a; 
char (*p4)[3] = a; 
return 0;
 }

例3:
int main()

char a[5]={'A','B','C','D'}; 
char (*p3)[10] = &a; 
char (*p4)[10] = a; return 0; 
}

上面对p3 和p4 的使用,哪个正确呢?p3+1 的值会是什么?p4+1 的值又会是什么?

答案:
对例1来说:
(1)p3 和p4 都是数组指针,指向的是整个数组。
(2)&a 是整个数组的首地址,a是数组首元素的首地址,其值相同但意义不同。
(3)在C 语言里,赋值符号“=”号两边的数据类型必须是相同的,如果不同需要显示或隐式的类型转换。
(4)p3 这个定义的“=”号两边的数据类型完全一致,而p4 这个定义的“=”号两边的数据类型就不一致了。左边的类型是指向整个数组的指针,右边的数据类型是指向单个字符的指针。
(5)在Visual C++6.0 上给出警告,还好,这里虽然给出了警告,但由于&a 和a 的值一样,而变量作为右值时编译器只是取变量的值,所以运行并没有什么问题。不过我仍然警告你别这么用。
(6)既然现在清楚了p3 和p4 都是指向整个数组的,那p3+1 和p4+1 的值就很好理解了。

例2,3大家在评论里讨论。

char (*p3)[5] = a; 和char (*p4)[5] = a;的区别?相关推荐

  1. linux wchar t char,linux 下 Linux 下char转换为wchar_t

    LInux下使用mbstowcs函数可以将char转化为wchar_t 函数含义:convert a multibyte string to a wide char string 说明:        ...

  2. linux strcpy 用法,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...

    今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...

  3. oracle中的char和j,oracle中char与varchar2的区别

    1. CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串"abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),在数据 ...

  4. const char* p 、char* const p、const (char*) p 理解记忆

    网上查找了很多理解记忆的方式,总结几个对自己理解很有帮助的原则: 1:从右至左理解(应该和c++的语言特性有关) 2:const修饰最近的一个单词,'*'除外.(还有一种理解const在'*'左,修饰 ...

  5. 在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

    [在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别 ] 1.CHAR(size)和VARCHAR(size)的区别  CHAR为定长的字段,最 ...

  6. java char 空字符串_java判断char是否为空的方法

    java判断char是否为空的方法 发布时间:2020-06-23 11:47:02 来源:亿速云 阅读:173 作者:Leah 这篇文章将为大家详细讲解有关java判断char是否为空的方法,文章内 ...

  7. c语言 char *b,C语言:char*a,*b; *b*=a是什么意思? 如图所示

    满意答案 scd921168 推荐于 2016.05.25 采纳率:52%    等级:12 已帮助:7261人 *b*=a 等效于 *b = (*b) * a a的值是a的ascii 十进制 字符 ...

  8. “const char *“ 类型的实参与 “char *“ 类型的形参不兼容错误的解决方法

    "const char *" 类型的实参与 "char *" 类型的形参不兼容错误的解决方法 参考文章: (1)"const char *" ...

  9. c语言中char * string,浅析string 与char* char[]之间的转换

    1.首先必须了解,string可以被看成是以字符为元素的一种容器.字符构成序列(字符串).有时候在字符序列中进行遍历,标准的string类提供了STL容器接口.具有一些成员函数比如begin().en ...

最新文章

  1. 通用软件测试的6个角度
  2. 如何安装altium designer 10
  3. eth0,eth1,eth2,lo是什么
  4. UNICODE与多字节字符集等字符问题
  5. c malloc 头文件_干货笔记 | C/C++笔试面试详细总结(二)
  6. 走访近20家代工厂后:近千块的大牌T恤,成本只要几十块
  7. 15个创意示例教您如何自定义 404 错误页面
  8. 吴恩达团队最新成果:用深度学习预测死亡概率,改善临终关怀
  9. sqlserver2014导出mysql_sql server2014如何备份数据库-sql server2014备份数据库教程 - 河东软件园...
  10. 浅谈大学综合能源服务
  11. 【经典书】机器学习导论(附PDF)
  12. 2021-02-18
  13. 计算机主机结构讲解,电脑内部结构图和讲解
  14. 计算机二级ms模拟题在线,全国计算机二级MSoffice高级应用模拟试题及答案
  15. 初识STM32---基于STM32的室内温湿度检测
  16. (arduino基于W5100实现TCP客户端
  17. vue——axios请求成功却进入catch的原因
  18. 周长为定长的所有平面四边形P中,面积最大的为正方形。
  19. mysql导出备份、导入恢复以及迁移(适用虚拟主机)
  20. 治疗腰椎间盘突出特效方

热门文章

  1. 团队nabcd(校园大事件)
  2. 《Linux 性能及调优指南》1.6 了解Linux性能指标
  3. CentOS6.8下搭建zookeeper web界面查看工具node-zk-browser
  4. View-webui controller 功能流程
  5. 利用TcpClient TcpListener 实现发送图片
  6. ROS 总结(二):创建URDF模型
  7. 把鼠标、触摸屏、触控笔统一起来,Pointer Events介绍
  8. 使用MMC管理windows机器
  9. 模式识别之基础---使用纹理滤波器分割图像
  10. 《专家系统(开发)--表达式检测--与表达式模板一起使用》