C语言结构体数组同时赋值的另类用法
说到C语言结构体数组的同时赋值,许多人一想就会想到用以下的这种方法,咱们来写一个例子:
#include <stdio.h> struct student { int a; int b ; int c ; }; struct student array1[1000] ; int main(void) { int i ; for(i = 0 ; i < 1000 ; i++) { array[i].a = 1 ; array[i].b = 2 ; array[i].c = 3 ; } for(i = 0 ; i < 1000 ; i++) { printf("array[%d].a:%d array[%d].b:%d array[%d].c:%d \n" , i, array[i].a ,i, array[i].b ,i, array[i].c); } return 0 ; }
这样就可以实现对结构体数组同时赋值了。
阅读Linux内核源代码的时候看到了,原来C语言还有一种更少人知道的方法,使用 "..." 的形式,这种形式是指第几个元素到第几个元素,都是一样的内容。这种用法在标准C上也是允许的,没有语法错误,我们来看看它是怎么用的:
#include <stdio.h> struct student { int a; int b ; int c ; }; //对第0个数组到第999个结构体数组同时赋值一样的内容 struct student array[1000] = { [0 ... 999] = { .a = 1 , .b = 2 , .c = 3 , } }; int main(void) { int i ; //输出赋值后的数值 for(i = 0 ; i < 1000 ; i++) { printf("array[%d].a:%d array[%d].b:%d array[%d].c:%d \n" , i, array[i].a ,i, array[i].b ,i, array[i].c); } return 0 ; }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
C语言查找数组里数字重复次数的方法
本文实例讲述了C语言查找数组里数字重复次数的方法.分享给大家供大家参考.具体如下: #include "stdafx.h" #include<stdio.h> #include <iostream> using namespace std; int main() { int myarray[10]={4,3,7,4,8,7,9,4,3,6}; printf("输入你想查询的数:"); int number=0; cin>>numb
-
深入理解c语言数组
一 数组名是什么 数组就是一段连续可用的内存.比如声明一个 int数组 int array[]={1,2,3}; array代表什么?有的资料说:数组名是指向数组首地址的常量指针. 下面我们可以验证一下.我都知道sizeof操作符可以返回一个对象或者类型所占的内存字节数.如:int i=1:那么sizeof(i) 的结果就是4(64位机器下的部分编译器是8) 那我们打印sizeof(array) printf("%d\n",sizeof(array)); 结果是:12. 但是我们都知道
-
C语言之从字符数组中删除特定的字符
从字符数组中删除特定的字符,即输入要删除的指定字符,利用for循环找到非指定字符,将非指定字符输出即可.以下为具体的实现方法: #include<stdio.h> int main() { char str[100],c; int j,k; printf("please input a string:"); gets(str); printf("\nEnter a character:"); c=getchar(); for(j=k=0;str[j]!=
-
C语言中数组作为函数的参数以及返回值的使用简单入门
函数通过数组作为参数 如果想通过一个一维数组作为函数的参数,就必须声明函数形式参数,使用以下三种方式与所有三个声明方法之一产生类似的结果,因为每一种方式告诉编译器,一个整数指针将会要被接收.类似的方式,可以使用多维数组形式参数. 方式-1 形式参数为指针如下.在下一章将学习什么是指针. void myFunction(int *param) { . . . } 方式-2 如下形式数组参数的大小: void myFunction(int param[10]) { . . . } 方式-3 如下形式
-
c语言实现把文件中数据读取并存到数组中
1.txt 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 2.txt 1 2 3 4 5 2 3 4 5 6 4 5 6 7 8 程序代码: // C++读取文本到数组.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" int readfile1D() { char a[100]; int i; FILE *fp = fopen("1.txt","r"); if(fp =
-
c语言字符数组与字符串的使用详解
1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串在c语言中,将字符串作为字符数组来处理.(c++中不是)在实际应用
-
c语言中数组名a和&a详细介绍
最近又把学习c语言提上日程上来了~~~先把我打算看的书都写下来吧,<C语言深度剖析>,<c和指针>系类,<c语言陷阱和缺陷> 先说说a和&a的区别(有三点,三个方向):1.是a和&a的本质,都是什么类型的.2.从2维数组的角度看.3.从指针运算的角度看. 声明:虽然数组名不是指针,但是用的很像指针,我们暂且把它叫做一个指针吧. 第一个问题:int a[10]; a ,&a和&a[0] 都是分别是什么?先说明a ,&a和&
-
C语言中数组的一些基本知识小结
初始化数组 int ages[3] = {4, 6, 9}; int nums[10] = {1,2}; // 其余的自动初始化为0 int nums[] = {1,2,3,5,6}; // 根据大括号中的元素个数确定数组元素的个数 int nums[5] = {[4] = 3,[1] = 2}; // 指定元素个数,同时给指定元素进行初始化 int nums[3]; nums[0] = 1; nums[1] = 2; nums[2] = 3; // 先定义,后初始化 定义但是未初始化,数组中有
-
C语言中对数组赋值的三种形式
前言 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 在C语言中,对数组进行赋值的三种形式 方法如下: 1.通过循环的形式 即:数组名[下标] 对数组的元素进行依次赋值 #include <stdio.h> int main() { int i; int a[10] = {0}; for(i=0;i<10;i++) { scanf("%d",&a[i]
-
C语言结构体数组同时赋值的另类用法
说到C语言结构体数组的同时赋值,许多人一想就会想到用以下的这种方法,咱们来写一个例子: #include <stdio.h> struct student { int a; int b ; int c ; }; struct student array1[1000] ; int main(void) { int i ; for(i = 0 ; i < 1000 ; i++) { array[i].a = 1 ; array[i].b = 2 ; array[i].c = 3 ; } fo
-
C语言结构体数组常用的三种赋值方法(包含字符串)
目录 一.按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy) 二.对数组整体进行赋值.(一次性需要把所有的都添加进去,不需要strcpy) (1) 在声明数组的时候,进行赋值 (2)对有规律的数据赋值,比如学生结构体的学号是有规律的. 三.使用输入进行赋值 总结 一.按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy) 这里使用了一个Init函数,为了在进一步说明传参的使用.实际上赋值按照需要放在主函数就行. (使用strcpy函数需要添加头文件string.h) #i
-
C语言 结构体数组详解及示例代码
所谓结构体数组,是指数组中的每个元素都是一个结构体.在实际应用中,结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生.一个车间的职工等. 定义结构体数组和定义结构体变量的方式类似,请看下面的例子: struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 }class[5]; 表示一个班级有5个学生. 结构体数组在定义的同时也可以初始化,例如: str
-
C语言结构体数组的定义和使用详解
目录 介绍 结构体数组定义时初始化 补充 介绍 一个结构体变量可以存放一个学生的一组信息,可是如果有 10 个学生呢?难道要定义 10 个结构体变量吗?难道上面的程序要复制和粘贴 10 次吗? 很明显不可能,这时就要使用数组.结构体中也有数组,称为结构体数组.它与前面讲的数值型数组几乎是一模一样的,只不过需要注意的是,结构体数组的每一个元素都是一个结构体类型的变量,都包含结构体中所有的成员项. 定义结构体数组的方法很简单,同定义结构体变量是一样的,只不过将变量改成数组.或者说同前面介绍的普通数组
-
C语言结构体的一些理解
前言 最忙碌的一周已然结束,疲惫之余想和大家聊一聊对C语言中结构体的认识.水平不足,如有问题请大家指正. 一.对结构体的理解 我们知道C语言中有基本数据类型: 1.整(数)型: int:基本整型,用于存储整数,占4个字节,默认值为0 short:短整型,占2个字节 long:长整型,占4个字节 long long:双长整型,占8个字节,比较少用 2.浮点型 float:单精度浮点型,占4个字节 double:双精度浮点型,占8个字节 3.字符型 char:字符型,用于存储单字符,占1个字节. (
-
详解C语言结构体中的char数组如何赋值
目录 前景提示 一.char数组类型的处理 1.结构体初始化 2.结构体内数据赋值(简单法) 二.char数组指针类型的处理 1.结构体初始化 2.结构体内数据赋值 3.结构体内输出数据 三.全部代码 1.char数组 2.char数组指针 总结 前景提示 定义一个结构体,结构体中有两个变量,其中一个是char类型的数组,那么,怎么向这个数组中插入数据,打印数据呢? typedef struct SequenceList { // 数组的元素 char element[20]; // 数组的长度
-
C语言利用结构体数组实现学生成绩管理系统
要求: 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).定义结构体类型描述学生信息,每个学生信息包括:学号.姓名.多门课的成绩.总成绩和平均成绩.用结构体数组作为函数参数,编程实现如下菜单驱动的学生成绩管理系统. (1) 录入每个学生的学号.姓名和各科考试成绩. (2) 计算每门课程的总分和平均分. (3) 计算每个学生的总分和平均分. (4) 按每个学生的总分由高到低排出名次表. (5) 按学号由小到大排出成绩表. (6) 按姓名的字典顺序排出成
-
C语言结构体成员赋值的深拷贝与浅拷贝详解
目录 浅拷贝 结构体中不存在指针成员变量时 结构体中存在指针成员变量时 深拷贝 结论 浅拷贝 C语言中的浅拷贝是指在拷贝过程中,对于指针型成员变量只拷贝指针本身,而不拷贝指针所指向的目标,它按字节复制的.我们分几种情况举例子来看一下. 结构体中不存在指针成员变量时 代码如下: #include <stdio.h> typedef struct { char name[64]; int age; }Member; int main(){ Member stu1 = { "LiMing&
-
C语言中使用qsort函数对自定义结构体数组进行排序
目录 使用qsort函数对自定义结构体数组进行排序 结构体 排序函数 总体代码 C语言 qsort()函数详解 1.qsort概念介绍 2.qsort()函数实现(循序渐进式讲解) 3.小结 使用qsort函数对自定义结构体数组进行排序 qsort进行排序的数组存储的不能是结构体的指针,需要是结构体本身. 结构体 struct student{ char* id; int mark; }arr[4], test0={"0001",80}, test1={"00
-
C语言对结构体数组按照某项规则进行排序的实现过程探究
目录 前言 一.qsort()函数 二.compare()函数 1.结构体数组 2.整型数组 3.浮点型数组 三.效果图 总结 这是基于qsort()函数进行的简单排序.(附带其他类型的数组使用qsort()进行的排序) 前言 基于qsort()函数进行的排序最有用的莫过于在此对于结构体数组进行排序了.此外,若能结合函数指针,更是能够实现“想降就降,想升就升”的美好局面. 一.qsort()函数 void qsort( void *base, size_t num, size_t width,
随机推荐
- spring boot创建项目包依赖问题的解决
- jQuery实现的弹幕效果完整实例
- Vue.js实现实例搜索应用功能详细代码
- java设计模式之观察者模式
- java发送邮件的具体实现
- oracle下一条SQL语句的优化过程(比较详细)
- asp.net(c#)做一个网页数据采集工具
- C#(.NET)数据访问连接、查询、插入等操作的封装类
- 鼠标左键单击冲突的问题解决方法(防止冒泡)
- javascript 小数取整简单实现方式
- Mysql跨表更新 多表update sql语句总结
- 使用beaker让Facebook的Bottle框架支持session功能
- FlippingBook使用教程(附下载)
- Git fetch和pull的详解及区别
- mysql 10w级别的mysql数据插入
- 简单讲解Python编程中namedtuple类的用法
- 挑战4道Java试题
- 使用JavaScript 实现各种跨域的方法
- BootStrap框架中的data-[ ]自定义属性理解(推荐)
- JavaScript操作XML文件之XML读取方法