C++知识点:typedef struct、printf

博客介绍了struct和typedef struct在C和C++中的不同用法及区别。在C中定义结构体类型常用typedef,C++里则更简单。还阐述了typedef struct完成定义新结构类型和起别名两个操作。此外,对比了print、printf、scanf,指出print无格式控制,printf可格式化输出,scanf是格式输入函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                           struct和typedef struct

1 首先://注意在C和C++里不同
    在C中定义一个结构体类型要用typedef:
    typedef struct Student
    {
    int a;
    }Stu;
在声明变量的时候就可:Stu stu1.这里的Stu实际上就是struct Student的别名。Stu==struct Student
    另外这里也可以不写Student:
    typedef struct
    {
    int a;
    }Stu;
    但在c++里很简单,直接
    struct Student
    {
    int a;
    };    
    于是就定义了结构体类型Student,声明变量时直接Student stu2, 然后stu2.a;
======================================================================================
    在c++中typedef可用可不用。如果用typedef的话,又会造成区别:
    struct   Student   
    {   
    int   a;   
    }stu1;//stu1是一个声明的变量  (同Student stu1)

使用时可以直接访问stu1.a
    typedef   struct   Student2   
    {   
    int   a;   
    }stu2;//stu2是一个结构体类型=struct Student  

 则必须先   stu2 s2;     然后               s2.a=10;
====================================================================================== 

    typedef struct和struct的区别:

    typedef struct tagMyStruct
    { 
     int iNum;
     long lLength;
    } MyStruct;

tagMyStruct是标识符,MyStruct是变量类型(相当于(int,char等))。

这语句实际上完成两个操作:

1) 定义一个新的结构类型

    struct tagMyStruct
    {   
     int iNum; 
     long lLength; 
    };

分析:tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,不论是否有typedef struct 关键字和tagMyStruct一起,构成了这个结构类型,这个结构都存在

  我们可以用

                         struct tagMyStruct varName

来定义变量,但要注意,使用

                          tagMyStruct  varName

来定义变量是不对的,因为struct 和tagMyStruct合在一起才能表示一个结构类型

  2) typedef为这个新的结构起了一个名字,叫MyStruct。

    typedef struct tagMyStruct MyStruct;

  因此,MyStruct实际上相当于struct tagMyStruct,我们可以使用MyStruct varName来定义变量。

转载自:https://www.cnblogs.com/qyaizs/articles/2039101.html


print、printf、scanf

1、print只是输出,没有格式控制,而printf可以根据需要,输出你需要的格式!

2、printf是格式化输出函数,它可以直接打印十进制,八进制,十六进制,输出控制符分别为%d, %o, %x

printf("aaaa%d%s",5,"bbbb");      %d表示插入数字,%s表示插入字符串,函数的后两个参数表示插入的实际内容

屏幕输出为: aaaa5bbbb

3、scanf()是格式输入函数,在使用scanf和printf函数时要加上#include <stdio.h>。
scanf是C语言的格式输入,函数作用:按照变量在内存的地址将变量值存进去。
一般格式:scanf(格式控制,地址表列)
scanf(“%d%d%d”,&a,&b,&c);
printf(“"a=%d;b=%d;"c=%d\n”,a,b,c);
运行情况:3 4 5 (回车)       

屏幕输出:a=3,b=4,c=5
%d是格式说明,输入的为十进制整数,表示从键盘向&a,&b,&c这个地址输入整数,换句话就是说把变量所代表的空间里存储了输入的整数,所以前面的取地址符&不能漏写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值