关于结构体赋值的一个小知识点

2023-05-16

一,如果结构体中定义了一个字符数组的成员变量,

struct test{
    int num;
    char ch[32];
}TEST;

当我们需要给字符数组赋值时,我们可能会选择下列某种方式进行初始化:

1.可以在定义结构体变量时直接赋值;

TEST test = {10,"linux"};
//或
TEST test = {.num = 10, .ch = "linux"};

2.如果定义结构体变量时不赋初值,可以一个元素一个元素的给数组成员变量赋值;

TEST test;
test.num = 10;
test.ch[0] = 'l';
test.ch[1] = 'i';
test.ch[2] = 'n';
test.ch[3] = 'u';
test.ch[4] = 'x';
test.ch[5] = '\0';

3.有些初学者会感觉逐个赋值比较麻烦,所以可能会直接将字符串赋值给数组成员变量,但是这样是错误的,怎么可以直接给一个字符类型的数组传一整个字符串呢;

TEST test;
test.num = 10;
//如下方法赋值是不对的
test.ch = "linux";

正确的方法是:不在创建结构体变量时直接初始化的情况下,比较快捷的给数组成员变量赋值,可以使用strcpy函数;

#include <string.h> //strcpy函数的头文件

TEST test;
test.num = 10;
strcpy(test.ch,"linux");

二,怎么在不直接给结构体变量初始化的情况下,不使用strcpy函数还可以直接赋值字符串呢?

可以修改一下数组成员变量的类型,改为字符类型的指针;

struct test{
    int num;
    char *ch;
}TEST;

int main()
{
    TEST test;

    test.num = 10;
    test.ch = "linux";

    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于结构体赋值的一个小知识点 的相关文章

  • jQuery05插件

    一 自定义插件 1 extend 类方法 1 1对象继承 xff1a extend 对象1 xff0c 对象2 1 2 扩展jQuery类方法 extend 方法名 function xff08 xff09 方法体 getMax funct
  • JavaWeb01(web环境的搭建)

    一 JDK开发工具包 1 下载和安装jdk xff1a https www oracle com index html 2 配置环境变量 JAVA HOME JDK的安装目录 path JAVA HOME bin CLASSPATH xff
  • MySql安装与使用

    今天给大家分享的是关于mysql的安装以及使用 目录 一 mysql安装步骤 二 mysql使用 一 mysql安装步骤 1 首先我们需要下载一个mysql的压缩包 xff0c 进行解压 2 接下来改变my ini文件 修改mysql安装路
  • Shiro认证及加盐加密

    目录 今天的知识是与上次所分享的知识相关联的 xff0c 在Shiro入门的基础进行编写 xff0c 上次之前的数据是死数据 放在Shiro ini 而这次是活数据 xff0c 可以连接到数据库 xff0c 运用域Relam知识 同时出于维
  • 快速掌握Nginx部署前端项目(从Nginx安装配置及部署都非常详细哦!)

    前言 xff1a 之前在Linux系统中部署了后端项目 xff0c 今天继续来给大家分享如何部署前端项目 涉及到了Nginx的简单介绍以及Nginx如何安装及配置并且能够部署前端项目 Nginx是一个轻量级的反向代理web服务器 xff0c
  • I2C协议要点总结

    I2C协议要点总结 https baijiahao baidu com s id 61 1747946282739071669 amp wfr 61 spider amp for 61 pc 一文看懂I2C协议 https zhuanlan
  • Docker数据卷&&自定义Docker镜像

    目录 宿主机与容器之间的文件拷贝 引言 xff1a 利用MySQL镜像安装MySQL服务 从容器中拷贝文件到宿主机 从宿主机拷贝文件到容器 数据卷 数据卷容器 Dockerfile自定义镜像 自定义tomcat8 xff08 熟悉几乎所有的
  • Docker自定义jdk镜像与上传阿里云

    目录 自定义jdk镜像 制作jdk8 v1 0镜像 alpine制作jdk镜像 alpine简介 基于Alpine制作jdk镜像 Alpine制作jre镜像 Docker镜像上传至阿里云 由于官方没有提供jdk xff0c 所以需要自定义j
  • OAuth2(三)

    首先把项目在本地运行起来 注意redis的配置 在地址栏输入 自动跳断点 界面截图
  • 微服务项目框架及多模块开发

    目录 项目简介 项目模式 技术栈 项目架构图 模块 案例演示 主模块 zmall common子模块 zmall user子模块 项目简介 项目模式 电商模式 xff1a 市面上有5种常见的电商模式 xff0c B2B B2C C2B C2
  • Mybatis与微服务注册

    目录 一 SpringBoot整合MybatisPlus 创建自动生成代码子模块 创建商品服务子模块 二 SpringBoot整合Freeamarker 三 SpringBoot整合微服务 amp gateway amp nginx 整合微
  • 呜呼小习题集

    在C语言中exit函数和return有相同的执行效果 xff0c 都是退出当前的函数 xff08 错 xff09 解析 xff1a 1 xff09 return是语言级别的 xff0c 它表示了调用堆栈的返回 xff1b return 是当
  • Ubuntu系统d435i相机驱动与realsense-ros安装

    安装Realsense SDK xff08 如仅仅在ROS中使用相机 xff0c 该步骤可有可无 xff0c 直接进行第二步ROS包的安装即可 xff09 下载安装包 打开终端 xff0c 运行命令 xff1a git clone http
  • 485通讯接受多个传感器信号发生冲突

    一共12个传感器通过485直接接到威纶通屏幕上 xff0c 通讯时有一个温度传感器和两个压力传感器信号会发生冲突 xff0c 温度传感器接通后 xff0c 两个压力传感器在屏幕上数值就不显示 xff0c 不接通的话 xff0c 就会显示 x
  • 在 Kali Linux 中如何安装 Google Chrome

    目的 我们的目标是在 Kali Linux 上安装Google Chrome Web 浏览器 同时 xff0c 请参阅附录为可能出现的问题进行排查 要求 需要获得已安装 Kali Linux 或者 Live 系统的特权 惯例 给定命令需要以
  • c++中.和::的区别

    xff1a xff1a 为作用域运算符 xff0c A xff1a xff1a B表示作用域A中的名称B xff0c A可以是类 空间 结构 xff1b 主要用于在类外定义类内函数 xff0c 例如 xff1a void A xff1a x
  • android测试之getevent/sendevent

    android测试之getevent sendevent https blog csdn net u013478557 article details 26063409 Android系统getevent用法 https www cnblo
  • 【githubboy】深度学习在图像处理中的应用,以视频的内容呈现

    对 AI 图像处理 感兴趣的同学 xff0c 可以看下深度学习在图像处理中的应用 xff0c 这个 GitHub 仓库 里面主要整理了作者在研究生期间的学习内容 xff0c 教程将以视频的内容呈现 xff0c 主要介绍网络结构与创新点 基于
  • 【githubgirl】如何通过实现一个简单的编译器(TinyC),并借助实例来描述基本的编译原理及过程

    GitHub 上一本开源技术书籍 xff1a 自己动手写编译器 xff0c 介绍如何通过实现一个简单的编译器 xff08 TinyC xff09 xff0c 并借助实例来描述基本的编译原理及过程 xff0c 开源技术 xff0c 自己动手写
  • 【githubgirl】Awesome-ICCV2021-Low-Level-Vision,图像生成与底层视觉相关的论文和代码。包括图像生成,图像编辑,图像风格

    Awesome ICCV2021 Low Level Vision xff0c 整理了 2021 年 ICCV 中 xff0c 图像生成与底层视觉相关的论文和代码 包括图像生成 xff0c 图像编辑 xff0c 图像风格迁移 xff0c 图

随机推荐