
C语言笔试
文章平均质量分 50
BachelorTse
这个作者很懒,什么都没留下…
展开
-
C语言易错题(隐式数据类型转换)
原因为(uint8_t)0xFF在进行按位取反前已强制转换为32位的数据,故取反后的值为0xFFFFFF00,按位与0x12345678得到0x12345600。误以为num计算结果为0x00000000;实则num值为0x12345600;原创 2024-05-08 18:51:50 · 244 阅读 · 0 评论 -
C语言预处理
注:两个下划线和英文间无空格,此处为了能显示双下划线而空格。__ DATE __: 当前日期,一个以 “MMM DD YYYY” 格式表示的字符串常量。__ TIME __: 当前时间,一个以 “HH:MM:SS” 格式表示的字符串常量。__ FILE __: 当前文件名,一个字符串常量。__ LINE __ :当前所在行号,一个十进制常量。原创 2023-03-12 19:37:25 · 305 阅读 · 0 评论 -
C语言宏定义几个问题
因为CAT(STR1,STR2)中含##,所以执行替换中不会被#define STR1 "aa"与#define STR2 “bb"影响,在执行完替换后,即STR1STR2,其为一整体,更不会被"aa"和“bb”替换,只会将整体的STR1STR2给替换成"welcome”。A(S)宏定义中含##,故替换过程中不会被其他宏定义替换,即不会被#define S SIZE替换,所以替换成了X_S,而X_S这个整体没有关于他的宏定义,所以结果为A(S)会被X_S替换;原创 2023-03-12 19:05:35 · 537 阅读 · 0 评论 -
C语言笔试题(1)
类型赋值给了形参p,strcpy函数将字符串常量“hello world”复制给了p所指向的字符串(区别于p=“hello world”,如果用这个替代strcpy这行代码则原理是“hello world”的首地址赋值给了p)。但是,在getmemory函数里动态分配的内存未释放掉,将会导致内存泄漏,又没办法把这段内存找回来,虽然形参p里存储这段内存的首地址,但他是形参,是函数里定义的变量,存放于栈中,在函数执行完就被释放掉了,所以没有人知道动态分配的这段内存在哪儿,唯一与这段内存有关系的p不存在了。原创 2023-03-11 01:54:16 · 640 阅读 · 5 评论