def是c语言特殊标识符吗,typedef和def究竟有什么区别?

1) #define是预处理指令,不会参与编译过程,只是在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:

#define PI 3.1415926

程序中的:area=PI*r*r 会替换为3.1415926*r*r

如果你把#define语句中的数字9 写成字母g 预处理也照样带入。

2)typedef是在编译时处理的。它在自己的作用域内给一个已经存在的类型一个别名,但是You cannot use the typedef specifier inside a function definition。

3)typedef int * int_ptr ; 与#define int_ptr int *

作用都是用int_ptr代表 int * ,但是二者不同,正如前面所说 ,#define在预处理 时进行简单的替换,而typedef不是简单替换 ,而是采用如同定义变量的方法那样来声明一种类型。也就是说;

#define int_ptr int *

int_ptr a, b; //相当于int * a, b; 只是简单的宏替换

typedef int* int_ptr;

int_ptr a, b; //a, b 都为指向int的指针,typedef为int* 引入了一个新的助记符

这也说明了为什么下面观点成立

typedef int * pint ;

#define PINT int *

那么:

const pint p ;//p不可更改,但p指向的内容可更改

const PINT p ;//p可更改,但是p指向的内容不可更改。

pint是一种指针类型 const pint p 就是把指针给锁住了 p不可更改

而const PINT p 是const int * p 锁的是指针p所指的对象。

4)也许您已经注意到#define 不是语句 不要在行末加分号,否则 会连分号一块置换。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 08-16

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C语言和Java的标识符有以下区别: 1. 标识符命名规则不同:C语言标识符只能由字母、数字和下划线组成,而Java标识符可以使用任何Unicode字符。 2. 大小写敏感性不同:C语言标识符是大小写敏感的,而Java标识符是大小写敏感的。 3. 关键字不同:C语言和Java的关键字不完全相同,因此在命名标识符时需要注意。 4. 数据类型不同:C语言和Java的数据类型不完全相同,因此在命名变量时需要注意。 5. 类型定义不同:C语言使用typedef关键字来定义类型,而Java使用关键字class来定义类型。 总之,在使用标识符时,需要遵循各自的规则,以确保程序的正确性和可读性。 ### 回答2: C语言和Java的标识符有以下几个区别: 1. 关键字:C语言和Java都有一些保留的关键字,这些关键字在代码中有特殊的含义,不能作为标识符使用。但是C语言和Java的关键字并不完全相同,所以在命名变量或函数时要注意不要使用这些关键字。 2. 大小写敏感性:C语言是大小写敏感的,而Java是大小写不敏感的。这意味着在C语言中,区分大小写的标识符是不同的,而在Java中,不区分大小写的标识符被视为相同的。 3. 标识符长度:C语言中的标识符长度没有限制,可以是任意长度的字符串。而Java中的标识符长度最多只能是65535个字符。 4. 开头字符:在C语言中,标识符的第一个字符必须是字母或下划线(_),后续字符可以是字母、数字或下划线。而在Java中,标识符的第一个字符必须是字母,可以是大小写字母,后续字符可以是字母、数字或下划线。 5. 保留字:在Java中,有一些额外的保留字,这些保留字虽然在当前版本的Java中没有特殊的用途,但是它们不能作为标识符使用。 综上所述,C语言和Java的标识符在关键字、大小写敏感性、标识符长度、开头字符和保留字等方面都有一些区别。在编写代码时,我们需要遵守相应语言的标识符规则,以避免出现语法错误。 ### 回答3: C语言和Java都是常见的编程语言,它们有一些相似之处,但在标识符方面也存在一些区别。 首先,C语言和Java标识符的命名规则略有不同。在C语言中,标识符可以由字母、数字和下划线组成,并且必须以字母或下划线开头。另外,C语言对于标识符的大小写是敏感的,因此大小写不同的标识符被视为不同的标识符。而在Java中,标识符也可以由字母、数字和下划线组成,但必须以字母开头,并且对大小写不敏感。这意味着在Java中,大小写不同的标识符被视为相同的标识符。 其次,C语言和Java的关键字不同。C语言和Java都有自己的一组关键字,这些关键字具有特殊的意义,不能用作标识符C语言的关键字包括"if"、"else"、"for"等,而Java的关键字则包括"if"、"else"、"for"等,虽然有一些相同,但也有一些不同的关键字。 最后,C语言和Java在标识符的命名习惯上也有一些差异。在C语言中,通常使用下划线作为多个单词的分隔符,例如"my_variable"。而在Java中,通常使用驼峰命名法(CamelCase)将多个单词连接在一起,其中每个单词的首字母大写,例如"myVariable"。 总而言之,C语言和Java在标识符方面存在一些区别。这些区别包括命名规则、关键字和命名习惯。了解和掌握这些区别对于在C语言和Java中编写规范和清晰的代码是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值