关于C语言sizeof的问题。 sizeof( int ) 和 sizeof( long )的返回值都是4 下面的C++代码中的sizeof(char *)与sizeo...

C\u8bed\u8a00sizeof('a')\u7684\u8fd4\u56de\u503c\u4e3a\u4ec0\u4e48\u662f4\uff0c\u800c\u4e0d\u7b49\u4e8esizeof(char)

C\u8bed\u8a00\u91cc\u5c31\u662f\u628a\u5b57\u7b26\u5e38\u91cf\u5f53\u505a\u4e86\u6574\u578b\u5904\u7406\u7684.
\u5728c\u4e2d'a'\u8fd9\u7c7b\u7684\u662f\u4ee3\u8868\u7740'a'\u8fd9\u7c7b\u7684ACSII\u7684\u503c..
\u800c\u5728c++\u4e2d'a'\u8fd9\u7c7b\u5c31\u4ee3\u8868\u4e00\u4e2a\u5b57\u7b26\u5e38\u91cf
sizeof 'a'
\u6240\u4ee5\u5728VC++\u91cc,\u4e3a 4 \u4e0d\u4e3a2 \u7684\u539f\u56e0.
\u4f60\u6ce8\u610f\u770b\u6211\u7b2c\u4e00\u53e5\u8bdd..\u5728c\u4e2d\u8fd9\u4e2a\u5b57\u7b26\u5e38\u91cf\u662f\u88ab\u5f53\u505a\u4e00\u4e2a\u6574\u5f62\u6765\u5904\u7406\u7684

sizeof(char*)
sizeof(int*)\u5c31\u662f\u6307\u7684\u6307\u9488\u7684\u5927\u5c0f\uff0c\u6307\u9488\u5927\u5c0f\u5728\u7279\u5b9a\u7684\u7f16\u8bd1\u5e73\u53f0\u4e0a\u5e02\u56fa\u5b9a\u7684\uff0c\u6240\u4ee5\u4e24\u4e2a\u90fd\u4e3a4\u4e2a\u5b57\u8282

以前的编译器多为16位int格式,现在大都是32位int格式了。32位int格式的编译器,定义int和long都是4字节,所以你得到的结果正确,都是4。

你是在什么系统里面看到到int表示-2^15~2^15-1, 一般32位里面INT和LONG都一样吧,short才表示-2^15~2^15-1
即int和long都是32BIT,short是16BIT,通过你的sizeof(int)和sizeof(long)都等于4表明这两个都占用了4字节即32BIT

c语言的定义是使long 的长度不小于int,就像定义short不大于int一样,具体看不同情况,不是一个固定的值。

32位编译这个都一样。。。我试过了,以前的机器肯定是不同的,现在的机器字节大了,所以一样的,所以一般没必要用long了,如果要翻倍就用long long
以前的机器是有16位的,所以有这个区别
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long long));
return 0;
}
4 4
-2^15~2^15-1是short了

turbo c -- dos下 int 2 个字节
vc mingw --- win32 int 4 字节

dos win32 下long都是4字节

  • C璇█閲鍏充簬缁撴瀯浣sizeof鐨棰
    绛旓細2锛 鏁翠綋绌洪棿鏄崰鐢ㄧ┖闂存渶澶х殑鎴愬憳绫诲瀷鎵鍗犲瓧鑺傛暟鐨勬暣鏁板嶃俿truct c{ int x; //4瀛楄妭 float y; //4瀛楄妭 }a[3];a[3]浣嶆暟缁勶紝sizeof(a)璁$畻鏁扮粍澶у皬浣8*3=24 鍋囧缁撴瀯浣撴敼涓轰笅闈㈣繖鏍凤細struct c{ double x; //8瀛楄妭 char y; //1瀛楄妭 鎬伙細8+1 int z; //4瀛...
  • C璇█sizeof鏈夊叧鐨棰樼洰璇锋眰甯姪
    绛旓細鍜屽唴瀛樺榻鏈夊叧锛屽拰缂栬瘧鍣ㄦ湁鍏炽傝缁嗚В閲婂涓嬶細缁撴瀯浣(struct)鐨sizeof鍊硷紝骞朵笉鏄畝鍗曠殑灏嗗叾涓悇鍏冪礌鎵鍗犲瓧鑺傜浉鍔狅紝鑰屾槸瑕佽冭檻鍒板瓨鍌ㄧ┖闂寸殑瀛楄妭瀵归綈闂銆傚厛鐪嬩笅闈㈠畾涔夌殑涓や釜缁撴瀯浣.struct { char a;short b;char c;}S1;struct { char a;char b;short c;}S2;鍒嗗埆鐢ㄧ▼搴忔祴璇曞緱鍑簊izeof(S1)...
  • c璇█涓璼izeof鐨鎰忔濇槸浠涔堜笅闈㈣繖閬撻鐨勭瓟妗堟槸浠涔,璇疯В閲婁竴涓媉鐧惧害鐭...
    绛旓細sizeof鏄寚杩欎釜鏁版嵁绫诲瀷鍒嗛厤鐨勫崟鍏冨唴瀛樺ぇ灏忥紝姣斿int 鏄4锛岀瓑绛夛紝鎵浠izeof(struct date)=4+4+4=12, union绫诲瀷姣旇緝鐗规畩锛屽畠鐨勯暱搴﹀ぇ灏忔椂鍐呴儴鎴愬憳涓渶澶х殑涓涓殑闀垮害锛屾墍浠izeof(m)鏄叾涓璴ong鐨勫硷紝涔熷氨鏄8
  • C璇█涓SIZEOF(INT)鈥滄槸浠涔堟剰鎬?鏈変粈涔堜綔鐢?
    绛旓細C璇█涓SIZEOF锛圛NT锛夆滄寚鐨勬槸姹傛嫭鍙蜂腑鐨勭被鍨嬶紝鎴栬呭彉閲忕殑澶у皬銆傛瘮濡傝繖閲寈搴旇鏄釜int鍨嬫暟缁勶紝閭d箞鐢ㄨ繖涓暟缁勭殑澶у皬锛岄櫎浠nt鍨嬫暟鎹殑澶у皬锛屽氨寰楀埌杩欎釜鏁扮粍鐨勯暱搴︺傦紙娉細杩欎釜鏁扮粍蹇呴』鏄潤鎬佹暟缁勶級sizeof鏄绠楁暟鎹紙鍖呮嫭鏁扮粍銆佸彉閲忋佺被鍨嬨佺粨鏋勪綋绛夛級鎵鍗犲唴瀛樼┖闂达紝鐢ㄥ瓧鑺傛暟琛ㄧず锛堝綋鐒剁敤鍦ㄥ瓧绗︽暟缁勮绠...
  • C璇█涓殑sizeof闂
    绛旓細杩欓噷sizeof鑾峰彇鐨勬槸鏁翠釜鏁扮粍鐨勫閲忓ぇ灏忓惂锛屽洜涓轰綘瀹氫箟鐨勬槸100鍟妔tring[100]锛屽棷鍡傜湅鍒颁簡鍚楋紝sizeof鑾峰彇鐨勪功鏁翠釜鏁扮粍鐨勫ぇ灏忥紝鍥犱负灏辩畻娌℃湁缁欏叏閮ㄥ厓绱犺祴鍊肩郴缁熶篃浼氱粰鑷姩璧嬩簣0鍊笺俰nt鍗4涓瓧鑺傛墍浠10涓氨鏄40锛宑har鍗1涓瓧鑺傦紝鎵浠ュ氨鏄10銆
  • c璇█涓璼trlen()涓sizeof()闂?
    绛旓細闂1锛氫笉鏄瓧绗︿覆瀛樺偍鍦ㄤ竴涓瓧鑺傞噷鑰屾槸char ss鎸囧悜鐨勬槸瀛楃涓茬殑绗竴涓瓧鑺傦紝鑰屼綘sizeof()鍐呯殑鍙傛暟姝eソ鏄寚閽堟墍鎸囩殑閭e潡绌洪棿鐨勫湴鍧鎵浠ユ槸涓涓瓧鑺 闂2锛氬湪c璇█涓紝strlen()鐨勫舰鍙傛槸鎸囬拡锛岃屼綘鐨勫疄鍙俿3涓苟娌℃湁缁撴潫绗0鎵浠ユ寚閽堜笉浼氳涓虹粨鏉燂紝鎵浠ラ暱搴︿笉鑳界‘瀹 ...
  • C璇█涓殑 sizeof(x)/sizeof(int); 鍏朵腑sizeof鏄粈涔堜綔鐢?
    绛旓細sizeof鏄竴涓繍绠楃锛岃屼笉鏄嚱鏁般傝繑鍥炲彉閲忔垨鑰呯被鍨嬫墍鍗犵殑瀛楄妭鏁般俿izeof(x)/sizeof(int); 濡傛灉x鏄痠nt鍨嬫暟缁勭殑璇濓紝杩斿洖鏁扮粍x鐨勯暱搴︺
  • c璇█ sizeof(1.5+10) 鐨勭粨鏋滀负浠涔堟槸8 涓嶆槸4?
    绛旓細鍥犱负涓嶈鏄庣殑灏忔暟鍦C閲岃榛樿涓篸ouble鍨嬶紝鎵浠ヨ繖閲岀殑1.5灏辨槸double鍨嬶紱鑰岃鍒欏張璇磋〃杈惧紡涓殑鏁版嵁绫诲瀷鍚戦珮绾у埆鑷姩鐪嬮綈锛岄偅涔1.5+10涓殑10鐨勭被鍨嬪湪璁$畻鏃跺氨琚嚜鍔ㄦ彁鍗囦负double鍨嬩簡锛屼笖璁$畻缁撴灉涔熸槸double鍨嬨俤ouble鍨嬪崰鐢8瀛楄妭锛屾墍浠sizeof(1.5+10)鐨勭粨鏋滀负8鏄纭殑銆傚鏋滃府鍔╀簡浣狅紝璇烽噰绾炽
  • C璇█涓璼izeof涓巗trlen鐨勫尯鍒槸浠涔
    绛旓細涓銆佹寚浠d笉鍚 1銆sizeof锛氱敤浜庤幏鍙栧瓧绗︿覆鐨勯暱搴︼紝鏄鐞嗗瓧绗︿覆鐨勯噸瑕佸伐鍏枫2銆乻trlen锛氭墍浣滅殑鏄竴涓鏁板櫒鐨勫伐浣溿備簩銆佽鍒欎笉鍚 1銆乻izeof锛氬彲鐢ㄤ簬浠讳綍鍙橀噺鍚嶃佺被鍨嬪悕鎴栧父閲忓硷紝褰撶敤浜庡彉閲忓悕锛堜笉鏄暟缁勫悕锛夋垨甯搁噺鏃讹紝涓嶉渶瑕佺敤鍦嗘嫭鍙枫2銆乻trlen锛氫粠鍐呭瓨鐨勬煇涓綅缃紙鍙互鏄瓧绗︿覆寮澶达紝涓棿鏌愪釜浣嶇疆...
  • C璇█涓璼izeof鍜宻trlen鍑藉紡鍖哄埆鍦ㄥ摢?
    绛旓細缂栬瘧鍣ㄤ笉鐭ラ亾闃靛垪鐨勫ぇ灏 濡傛灉鎯冲湪鍑藉紡鍐呯煡閬撻樀鍒楃殑澶у皬锛 闇瑕佽繖鏍峰仛锛 杩涘叆鍑藉紡鍚庣敤memcpy鎷疯礉鍑烘潵锛岄暱搴︾敱鍙︿竴涓舰鍙備紶杩涘幓 fun(unsiged char *p1, int len) { unsigned char* buf = new unsigned char[len+1] memcpy(buf, p1, len); }C璇█涓鍏充簬sizeof 鍜 strlen鐨勫尯鍒垎鏋 ...
  • 扩展阅读:c语言中sizeof的用法 ... sizeof int ... c语言sizeof用法示例 ... c语言sizeof用来算什么 ... c语言必背100代码 ... c语言sizeof头文件 ... c语言sizeof怎么输出 ... c语言sizeof x ... 简述c语言中sizeof的功能 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网