CString类型和char类型是不同的
循环 0~31 也就是 0x00~0x1f,想转成char格式,然后逐bit 输出 循环中,直接用char的变量,就行了,逐bit就用 a ^ j (j=0~7)
内存大小并未改变,只是让char *o 指针指向了int 型的低位。调试是硬道理!程序:include<stdio.h> int main(){ int i=789;char *o=(char *)&i;printf("%d, %c\n", i, *o);return 0;} 调试结果:
int 型 可以 强制转换为 char型。char型 实际上就是整型,只不过是 1字节长度的整型。char型由于只有 1字节长度,所以能表示的是数值 范围比 int 型 小。int 型 和 char型 之间 实际上 可以直接 相互 赋值。可以省去 (char) 或 (int)。char 赋给 int 没问题。int 赋给 char, 当 int ...
char型范围是-128~127。500超限了,只取二进制低八位——500的二进制是111110100,取低八位是11110100,这个数刚好是十进制数-12的补码。
首先要明白负数在内存中的存储方式,还要知道int和char各占几位(都是最基本的啦)。这里很容易知道: a[0] = -1 内存中应当是:11111111 11111111 11111111 11111111 a[1] = -2 内存中应当是:11111111 11111111 11111111 11111110 a[2] = -3 内存中应当是:11111111 11111111 11111111 11111101 ...
百度试题 结果1 题目若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为( )。 A. (int)*p B. (char*)p C. int*)p D. (char*)p 相关知识点: 试题来源: 解析 b. (char*)p 反馈 收藏
首先要明白负数在内存中的存储方式,还要知道int和char各占几位(都是最基本的啦)。这里很容易知道: a[0] = -1 内存中应当是:11111111 11111111 11111111 11111111 a[1] = -2 内存中应当是:11111111 11111111 11111111 11111110 a[2] = -3 内存中应当是:11111111 11111111 11111111 11111101 ...
转:一道笔试题-将int型数组强制转换为char*,再求strlen,涉及大小端,写出如下程序运行结果:#include#includeintmain(){inta[2000];char*p=(char*)a;for(inti=0;iintcheck(){unioncheck{inti;charch;}c;printf("%d\n",&c.i);
intmain() { inta[2000]; char*p = (char*)a; for(inti = 0; i < 2000; i++) a[i] = -1 - i; printf("%d\n", strlen(p)); return0; } 此乃网速科技2011校园招聘笔试题第一题,本人心里素质很不错,不过看到此题当时就懵了,哪有人这么写代码的,所以当时也没有做出来,后来运行以后也没有...