日本无码中文字幕片|日本精品在线观看无码视频|国产精品免费啪啪|Av无码一区二区|亚洲在线黄片免费观看|亚洲日韩中文字幕在线观看|熟女激情乱伦在线观看a黄片|成年人观看毛片网址|AV色色色色日韩性草|国产高清无码免费

思考人生自己來作文

時間:2025-10-23 10:19:49 思考 我要投稿

思考人生自己來作文

  #define MAX 255

思考人生自己來作文

  int main()

  {

  unsigned char A[MAX],i;/pic/p>

  for (i=0;i<=MAX;i++)

  A[i]=i;

  }

  解答:死循環(huán)加數組越界訪問(C/C++不進行數組越界檢查)

  MAX=255

  數組A的下標范圍為:0..MAX-1,這是其一..

  其二.當i循環(huán)到255時,循環(huán)內執(zhí)行:

  A[255]=255;

  這句本身沒有問題..但是返回for (i=0;i<=MAX;i++)語句時,

  由于unsigned char的取值范圍在(0..255),i++以后i又為0了..無限循環(huán)下去.

  struct name1{

  char str;1 short x;2

  int num;

  }

  struct name2{

  char str;0

  int num;4

  short x;6

  }

  sizeof(struct name1)=8,sizeof(struct name2)=12

  在第二個結構中,為保證num按四個字節(jié)對齊,char后必須留出3字節(jié)的空間;同時為保證整個結構的自然對齊(這里是4字節(jié)對齊),在x后還要補齊2個字節(jié),這樣就是12字節(jié)。

  intel:

  A.c 和B.c兩個c文件中使用了兩個相同名字的static變量,編譯的時候會不會有問題?這兩個static變量會保存到哪里(棧還是堆或者其他的)?

  static的全局變量,表明這個變量僅在本模塊中有意義,不會影響其他模塊。

  他們都放在數據區(qū),但是編譯器對他們的命名是不同的。

  如果要使變量在其他模塊也有意義的話,需要使用extern關鍵字。

  struct s1

  {

  int i: 8;

  int j: 4;

  int a: 3;

  double b;

  };

  struct s2

  {

  int i: 8;

  int j: 4;

  double b;

  int a:3;

  };

  printf(“sizeof(s1)= %d\n”, sizeof(s1));

  printf(“sizeof(s2)= %d\n”, sizeof(s2));

  result: 16, 24

  第一個struct s1

  {

  int i: 8;

  int j: 4;

  int a: 3;

  double b;

  };

  理論上是這樣的,首先是i在相對0的位置,占8位一個字節(jié),然后,j就在相對一個字節(jié)的位置,由于一個位置的字節(jié)數是4位的倍數,因此不用對齊,就放在那里了,然后是a,要在3位的倍數關系的位置上,因此要移一位,在15位的位置上放下,目前總共是18位,折算過來是2字節(jié)2位的樣子,由于double是 8字節(jié)的,因此要在相對0要是8個字節(jié)的位置上放下,因此從18位開始到8個字節(jié)之間的位置被忽略,直接放在8字節(jié)的位置了,因此,總共是16字節(jié)。

  第二個最后會對照是不是結構體內最大數據的倍數,不是的話,會補成是最大數據的倍數

【思考人生自己來作文】相關文章:

思考人生的作文[經典]02-22

人生的思考作文02-06

(精選)人生思考作文02-29

思考人生的作文(經典)04-12

【經典】人生思考作文04-09

思考人生作文(經典)04-26

[經典]思考人生的作文03-20

【精選】思考人生的作文03-05

對人生思考的作文05-30

思考人生作文11-27

  • 相關推薦