关于使用 typedef 编写类型以定义 const 时出现的问题

发布于 科技 2024-08-16
6个回答
  1. 匿名用户2024-02-01

    这不是谁取代谁的问题,typedef 没有定义。 我认为可以这样理解:你可以把typedef看作是一个普通的定义,pstring相当于定义了string*类型的变量,然后pstring str就像复制一个类型的变量作为pstring。

    const pstring ptr,首先psstring是一个指针,所以ptr是一个const指针,在定义它的时候必须初始化。

  2. 匿名用户2024-01-31

    它是 psstring 替换 string*

    对于你添加的问题,我进行了实验,确实如你所说。 我不太了解,所以我又做了两组实验:

    1. 如果定义为define pstring string*,可以编译(因为是直接替换的,所以和const string* pstr是一样的),就是问题就是不能简单地把typedef理解为替换,也就是define。

    2. 那么typedef和define有什么区别,我定义typedef const string* pstring; 也通过了。 也就是说,const pstring 编译器不认为它是一个类型(我不知道该怎么想)。

    知道就是知道,不知道就是不知道,我看了一眼,发现这个知道:

    我不知道你是否明白。

  3. 匿名用户2024-01-30

    typedef string * pstring;

    如果使用 psstring 表示字符串 * string * 是指向字符串类型的指针,则使用 psstring 定义的 ptr 也是指向字符串类型的指针。

    Pstring 是 string * 的另一个名称,只是为了记忆。

  4. 匿名用户2024-01-29

    请从右到左阅读所有定义。

    typedef string *pstring;

    从右边看,pstring 是指向字符串对象的指针。

    const string * p;

    p 是指向 String 对象的指针,该对象是 const。 所以 p 是指向 const 字符串的指针。

    string* const p;

    p 是 const,const 的指针,指向字符串,所以 p 是指向字符串的 const 指针。

    const string* const p;

    p 是 const,const 的指针指向 String,而这个 String 对象是 const,所以 p 是指向 const 字符串的 const 指针。

  5. 匿名用户2024-01-28

    1) Typedef 可以声明各种类型名,但不能用于定义变量。可以使用 typedef 来声明数组类型和字符串类型,使用起来更方便。

    2) 使用 typedef 只会将类型名称添加到现有类型,但不会创建新类型。

    3)当同一类型的数据(特别是数组、指针、结构体、公共资源等数据)在不同的源文件中使用时,通常使用typedef来声明一些数据类型,将它们分别放在头文件中,然后使用include命令将它们包含在需要用于提高编程效率的文件中。

    4)typedef的使用有利于程序的泛化和可移植性。有时程序依赖于硬件功能,而 typedef 很容易移植。

  6. 匿名用户2024-01-27

    typedef int integer;使用标识符整数指定 int 类型。

    typedef float real;指定 real 表示浮点类型。

    这样,以下两行是等效的:

    int i,j; float a,b;

    integer i,j; real a,b;在程序中,整数变量专门用于计数,计数可以用作整数类型名称:

    typedef int count;指定 count 用于表示 int 类型。

    count i,j;将变量 i,j 定义为计数类型,即 int 类型在程序中将变量 i,j 定义为计数类型,使人们更容易一目了然地知道它们是用于计数的。 您还可以声明结构类型:

    typedef struct 请注意,关键字 typedef 在 struct 之前使用,以指示已声明新名称。

    int month; int day; int year; }date;请注意,date 是新类型的名称,而不是 struct 变量的名称。

    声明日期的新类型名称表示上面指定的结构类型之一。 这样就可以用日期定义变量:

    date birthday; date *p;p 是指向此结构类型数据的指针。

    它还可以进一步:

    typedef int num[100];将 num 声明为整数数组类型,包含 100 个元素 num n; 将 n 定义为包含 100 个整数元素的数组。

    typedef char *string;将字符串声明为字符指针类型字符串 p,s[10]; p 是字符指针变量,s 是指针肢数组(有 10 个元素)。

    typedef int (*pointer)( 声明指针指向指针日历肢体类型的函数,该函数返回整数值 pointer p1,p2; p1 和 p2 是指针变量。

相关回答
3个回答2024-08-16

你可以写下家人、朋友和老师的爱,以及他们如何善待你。

4个回答2024-08-16

十字架中央有一个长的,一个女孩把一个母亲f扔进去。

21个回答2024-08-16

根据阶段,情书可分为三种类型。

一封写给从未与你联系过的人的情书。 >>>More

4个回答2024-08-16

工作中的风电场。

翻转。 >>>More

14个回答2024-08-16

钟嘉欣现在唱的只有一首英文歌,非常好听。 >>>More