报警主机报价:c语言若有以下定义: tyepdef int *INTEGER; INTEGER p, *q

来源:百度文库 编辑:高校问答 时间:2024/04/29 15:42:23
47
若有以下定义: tyepdef int *INTEGER; INTEGER p, *q
以下叙述正确的是
p是int型变量
p是基类型的指针型变量
q是基类型的指针型变量
程序中可用INTEGER代替int类型名
48
main(){unsigned char a,b,c; a=0x3; b=a|0x8; c=b<<1; printf("%d%d\n",b,c);}
unsigned char a,b,c; 是什么意思
a=0x3; 是什么意思
b=a|0x8; 是什么意思
c=b<<1; 是什么意思(远远小于?)
答案是 11 22
49
char *p,*q; p=(char *)malloc(sizeof(char)*20); q=p;
加*代表什么意思?
p=(char *)是什么意思
malloc(sizeof(char)*20)是什么意思

47. 选第二个,INTEGER就代码int*,用它定义的变量为int型指针

48.unsigned char a,b,c; 是什么意思:
将a,b,c定义为unsigned char 类型的变量
a=0x3; 是什么意思:将16进制数0x3赋给a,既a为ASCII码为3的字符
b=a|0x8; 是什么意思:将a|0x8的值赋给b
a 0000 0011
0000 1000
-------------按位或
b 0000 1011=11

c=b<<1; 是什么意思:将b向左移动1位,移出的位填0,相当于乘以2
b 0000 1011
------------- b<<1
0001 0110=22

49.char *p,*q;表示将p,q定义为指向字符串的指针
malloc(sizeof(char)*20); 分配20个char类型大小(20字节)的空间,并返回一个void*类型的指针指向这段内存区域的开始地址
p=(char *)malloc(sizeof(char)*20); 表示先将void*类型转换为char* 类型,既p的类型,再将p指向这段内存区域的开始地址
q=p:将q也指向这段内存的开始地址

q是基类型的指针型变量
p 是变量名

unsigned char a,b,c;无符号指针
char * 字符指针

p=(char *)malloc(sizeof(char)*20); 动态分配空间20个字符大小 相当于p[20]

nipperhjw - 见习魔法师 二级 答的很好 顶