复合文字

123, 3.14, ‘X‘, "hello"都是复合文字

(int [2]){10, 20};  // 一个复合文字, 创建了一个包含两个int值的无名称数组

(int []){10, 20};   // 自动计算元素数目

int * ptr;

ptr = (int [2]){10, 20};

int (* ptr)[4];

ptr = (int [2][4]){{1, 2, 3, -9}, {4, 5, 6, -8}};

// 复合文字类型是int[2][4]

时间: 2024-10-07 09:19:09

复合文字的相关文章

c语言:复合文字

复合文字的意义,相当于是在C语言中,为数组类型定义了一种类似于8之于int,'w'之于char一样的常量类型,所以从C99之后,可以在一些地方使用复合文字来代替数组使用. 复合文字的声明 (int [3]){1,2,3}; //一个复合文字,定义类似于数组的定义(int []){1,2,5,6,8}; //类似于数组,复合文字的定义也可以省略大小 因为复合文字没有名称,所以,不能在一个语句中创建,而在另一个语句中使用.必须在一个语句中创建的同时使用他们. 一种可能的使用方法是在创建的同时使用指针

保护数组内容、复合文字

1.使用const可以对数组函数提供保护,可以阻止函数修改调用函数中的数据.总之,如果函数想修改数组,那么在声明数组参量时就不要使用const.如果函数不需要修改参量,就需要加const. 2.指针和多维数组.(267).变长数组(273) 3.复合文字 例如:(int [2]) {10,20}这是一个复合文字,它表示一个包含两个int值得无名称数组. (int [3]){20,30,40}有3个元素的复合文字. 通过指针保存复合文字的位置:int * pt1; pt1=(int [2]) {1

复合文字(Compound Literals)

复合文字(Compound Literals) 阅读代码时发现了这行 1 setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&(int){1},sizeof(int)); 发现之前没有见过这种写法 1 &(int){1} 上网搜索发现Compound Literals是c99添加的新特性,gcc在c90和c++中也支持此种特性,但在c++中的语义有所不同. 官网上举的例子是: 假如一个结构体的定义如下: 1234 struct { int a; char b[

C语言复合字面量的使用

C99添加的特性,复合字面量(composite literal).一旦熟悉并使用,便会体会到简洁强大的表达. 所谓字面量就是固定数值的表示.数值和字符串类型都有字面量的表达.如: // 100, 1.23f, "literral" 都是字面量 int x = 100; float y = 1.23f; char* s = "literral"; 可看到字面构建的同一时候就能够复制给变量使用.既然是固定数值,那么在初始化的时候就能够构建. 那么复合字面量是几个意思的

数组与指针

//使用递归来计算阶乘#include<stdio.h>long rfact(int n);int main(){ int num; printf("This program calculate factorials.\n"); printf("Enter a value in the range 0-12(q to quit): \n"); while(scanf("%d",&num)==1) { if(num <0

结构和其他数据形式

结构体中关键词struct表示接下来的是一个结构 struct book{ ... }library:等同于struct book library; 初始化结构:struct book library = { "the ...", "dddd"}; struct book gif = { .value = 98.3,3.4 //紧跟着value }:数组是自动存储类,通常放在堆栈中.太大是把它变为静态的或外部的 #include<math.h>doubl

数组与指针操作

一,数组 1,const int array[5] = {0, 1, 2, 3, 4}; 2,c99新特性,可以对指定的数组的某一个元素初始化.例如:int array[10] = {1, 3, [4] = 2, 6, 7, [1] = 32};如果多次对一个元素进行初始化,取最后一次的值. 3,c不支持把数组作为一个整体来赋值,也不支持用花括号括起来的列表形式进行赋值. 4,sizeof表达式被认为是一个整数常量. 5 * 5 - 1 就是整数常量表达式. 5,变长数组int array[n]

C Primer Plus(第五版)中文版.pdf

下载地址:网盘下载 内容简介 编辑 本书全面讲述了C语言编程的相关概念和知识. 全书共17章.第1.2章学习C语言编程所需的预备知识.第3到15章介绍了C语言的相关知识,包括数据类型.格式化输入输出.运算符.表达式.流程控制语句.函数.数组和指针.字符串操作.内存管理.位操作等等,知识内容都针对C99标准:另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容更加适合读者的需求.第16章和第17章讨论了C预处理器和C库函数.高级数据表示(数据结构)方面的内容.附录给出了各章

C99C新增内容

继上一篇复合文字之后,今天我们继续谈一谈C99C的新特性. C99标准是继C89标准之后的第二个C语言官方标准,于1999年12月1日正式发布,其中对数据类型(增加了对_Bool),关键字(增加了inline restrict关键字)等方面的增加无疑给我们编程 带来了诸多便利. 1.指定初始化符 指定的初始化符通常有两种用法:用于数组和用于结构和联合 (1)用于数组 用于数组的格式:[index] = vol;  其中,index表示数组的下标,vol表示本数组元素的初始化值.例如: int x