C笔试题:将int型数组强制转换为char*,再求strlen,涉及大小端 1#include<stdio.h>2#include<string.h>3intmain()4{5inta[2000];6char*p = (char*)a;7for(inti =0; i <2000; i++)8a[i] = -1-i;9printf("%d\n", strlen(p));10return0;11} 运行结果是:1020 解析: 首先要明白负数在内存中...
内存大小并未改变,只是让char *o 指针指向了int 型的低位。调试是硬道理!程序:include<stdio.h> int main(){ int i=789;char *o=(char *)&i;printf("%d, %c\n", i, *o);return 0;} 调试结果:
char型范围是-128~127。500超限了,只取二进制低八位——500的二进制是111110100,取低八位是11110100,这个数刚好是十进制数-12的补码。
百度试题 结果1 题目若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为( )。 A. (int)*p B. (char*)p C. int*)p D. (char*)p 相关知识点: 试题来源: 解析 b. (char*)p 反馈 收藏
1#include<stdio.h>2#include<string.h>3intmain()4{5inta[2000];6char*p = (char*)a;7for(inti =0; i <2000; i++)8a[i] = -1-i;9printf("%d\n", strlen(p));10return0;11} 运行结果是:1020 解析: 首先要明白负数在内存中的存储方式,还要知道int和char各占几位(都是最基本的啦)。这...
转:一道笔试题-将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() {intret; ret=check();if(ret ==1) { printf("little\n"); }else{ printf("Big\n"); }return0; } 大小端判断的第二种方法: 使用指针: int x=1; if(*(char*)&x==1) printf("little-endian\n"); else printf("big-endian\n"); ...
intmain() { inta[2000]; char*p = (char*)a; for(inti = 0; i < 2000; i++) a[i] = -1 - i; printf("%d\n", strlen(p)); return0; } 此乃网速科技2011校园招聘笔试题第一题,本人心里素质很不错,不过看到此题当时就懵了,哪有人这么写代码的,所以当时也没有做出来,后来运行以后也没有...