C语言里“#define N 10”是表示之后代码中的“N”全部代表“10”,并且是在执行编译预处理时就进行了实际的替换操作。
define函数定义一个常量的宏,被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。
宏代换是由预处理程序自动完成的,宏定义的作用范围仅限于当前文件。
扩展资料:
宏定义的优点:
1、方便程序的修改
使用简单宏定义可用宏代替一个在程序中经常使用的常量,这样在将该常量改变时,不用对整个程序进行修改,只修改宏定义的字符串即可,而且当常量比较长时, 我们可以用较短的有意义的标识符来写程序,这样更方便一些。我们所说的常量改变不是在程序运行期间改变,而是在编程期间的修改。
2、提高程序的运行效率
使用带参数的宏定义可完成函数调用的功能,又能减少系统开销,提高运行效率。正如C语言中所讲,函数的使用可以使程序更加模块化,便于组织,而且可重复利用,但在发生函数调用时,需要保留调用函数的现场,以便子函数执行结束后能返回继续执行。
同样在子函数执行完后要恢复调用函数的现场,这都需要一定的时间,如果子函数执行的操作比较多,这种转换时间开销可以忽略,但如果子函数完成的功能比较少,甚至于只完成一点操作,如一个乘法语句的操作,则这部分转换开销就相对较大了,但使用带参数的宏定义就不会出现这个问题。
参考资料来源:搜狗百科-define (计算机专业用语)#define n 3这是c语言中的一个宏定义,使n=3
c语言中的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等。
c语言中宏定义是在程序编译时,通过直接替换的,将程序中所有的n都替换为3。这是一个宏定义,是预编译命令中的一种,意思是用“N”这个字符常量来表示“10”这个字符,以后凡是出现N的地方系统自动用10替换,记住这里的“10”仅代表一个字符,假如需要用于数学计算,系统会自动进行类型转换。。。
int (*int)[10]; int型指针,指向一个数组。此数组有10个int型元素
int(*int)[10]
先找到声明符int型,被括号括着,先看括号内的(优先级高),然后向右看,没有,向左看,是*,说明是个指针,什么指针?在看括号外面的,先向右看,有[] 是个数组,说明a是个志向数组的指针,再向左看,是int,说明数组的每个元素是int。所以,这是一个指向存放int的数组的指针。
int (*q)[10];
printf( "(*q)[10]: %d ", sizeof(q));
(*q)[10]: 4 //说明q是一个指针
占内存4个字节,就是一个指针,但明确指向一个10个int型元素的数组。这是c#的语法,表示申明一个整形一维数组arr,同时分配10个整数大小的空间,具体大小要看当前系统整形所占字节大小,一般是4个字节,所以4*10=40个字节,c#除了这40个字节之外还会分配额外管理用的空间,因为c#内部所有都是对象。
c++的语法是int* arr=new int[10];
但是在空间分配和内存管理上是不同的。