C类型表达式一例
来源:互联网 发布:实体店和淘宝买家具 编辑:程序博客网 时间:2024/06/16 04:35
有人关于如下代码为何编译出错不解:
- #include<stdio.h>
- main()
- {
- char a[][5] = {"abcd", "efgh", "ujkl"};
- char (*p)[3];
- p[0]=a[0];
- printf("%s/n", p[0]);
- }
解释如下:
a的类型为
a : arr ( 3, arr ( 5, char ) ) 可以读作 a is arr(3) of arr(5) of char
p的类型为
p : pointer ( arr ( 3, char ) ) 可以读作 p is pointer to arr(3) of char
a[0]是arr (5, char );p[0]是*p的语法糖表现,类型是 arr(3) of char,不能作为左值,故语法错误。另外,3个元素的char数组放不下5个元素的char数组。
对于上述错误代码,最合乎原意的最简单的改动是char (*p)[3];==>char *p[3];
修改后
p的类型为
p : arr ( 3, pointer ( char ) )
p[0]: pointer(char),可以作为左值。
- C类型表达式一例
- C程序设计语言(一)导言,类型、运算符与表达式
- 一、类型、运算符、表达式
- (三十)C语言学习笔记(一)——类型、运算符与表达式
- C语言中类型.运算符.表达式
- C/C++强制类型转换中的安全隐患一例
- C/C学习笔记/类型、运算符、表达式
- C中的运算符与表达式(一)
- C语言--------逗号表达式分析一:
- 正规表达式一例
- C#.NET 中的类型转换(一)
- Modern C++(一)auto自动类型推导
- C#教程第二课:表达式,类型和变量
- C语言一些基础:数据类型,运算类型及表达式
- C#教程第二课:表达式,类型和变量
- C#教程第二课:表达式,类型和变量
- 《C程序设计语言》笔记----第二章 类型、运算符与表达式
- 《C程序设计语言》 第二章 类型、运算符与表达式
- DBHelper
- JsonConvert.js
- linux设备驱动开发------牛人
- ~~~新人报道
- 知名大学硕博论文及英文期刊全文资源集合
- C类型表达式一例
- 虚拟码-->ASCII码
- insmod: error inserting 'hello.ko': -1 Invalid module format
- 一些关于javascript、jQuery使用时的建议
- setVolumeControlStream(int streamType)
- android 权限
- android播放器音量控制-使用震动示例代码-进度条控制音量
- 洗脸步骤
- Posix线程编程指南(4)