C语言特殊语法(六)复合表达式
2014-06-21 00:00
218 查看
废话不说了,先看看常规的指针写法:
对字符指针来说,可以直接赋值,这是比较爽的一件事。可是整型或浮点型指针却不能直接赋初值,还得先定义一个数组,再让指针指向数组,这样就难免显得繁琐了。
这里说下任意指针赋初值的一个写法:
在面向对象的语言如C++、Python、Java中,可以传递匿名对象作为参数。在有了上面的那种写法后,C语言也类似有了C++、Java的影子,例如:
对结构体也一样的用法,如:
char *str = "helloworld"; int array[3] = {1, 2, 3}, *ptr = array;
对字符指针来说,可以直接赋值,这是比较爽的一件事。可是整型或浮点型指针却不能直接赋初值,还得先定义一个数组,再让指针指向数组,这样就难免显得繁琐了。
这里说下任意指针赋初值的一个写法:
char *str = (char []){"helloworld"}; const char *sstr = (const char []){"helloworld"}; int *ptr = (int []){1, 2, 3, 4}; float *fptr = (float []){1.1, 2.2, 3.3, 4.4};
在面向对象的语言如C++、Python、Java中,可以传递匿名对象作为参数。在有了上面的那种写法后,C语言也类似有了C++、Java的影子,例如:
//void sort(int *p, int len) sort((int []){3, 7, 2, 9, 1, 4}, 6);
对结构体也一样的用法,如:
struct book { char name[16]; float price; }; void print_bookinfo(struct book *bk) { printf("name: %s\nprice: %.2f\n", bk->name, bk->price); } print_bookinfo(&(struct book){"C-Programming", 60.0});
相关文章推荐
- C语言特殊语法(五)另类数组
- C语言特殊语法(七)MAIN函数
- C语言特殊语法(四)另类分支语句
- C语言特殊语法系列文章
- mysql语法、特殊符号及正则表达式的使用
- mysql语法、特殊符号及正则表达式的使用
- mysql语法、特殊符号及正则表达式的使用
- C语法归约之表达式复合运算(4)
- 04.MVEL基本语法--复合表达式
- [正则表达式]-基础语法三 其他特殊字符与转义字符
- C编译器剖析_3.1 语法分析_C语言的表达式(2)
- 正则表达式 - 语法之特殊字符
- C语言特殊语法(三)第三种注释
- C编译器剖析_3.1 语法分析_C语言的表达式(1)
- Mysql语法、特殊符号及正则表达式的使用详解
- c语言 转义符 算术运算符及赋值运算符 复合运算符 逗号运算式和表达式 关系运算符 逻辑运算符
- .NET中正则表达式的一些语法概述
- 正则表达式通用介绍和语法
- 正则表达式的基本语法
- .NET中正则表达式的一些语法概述