日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

C++基礎(chǔ)面試題分享

  1,以下代碼中的兩個sizeof用法有問題嗎?

  sizeof如用于數(shù)組,只能測出靜態(tài)數(shù)組的大小,無法檢測動態(tài)分配的或外部數(shù)組大小。注意:數(shù)組名作為函數(shù)參數(shù)時,退化為指針。數(shù)組名作為sizeof()參數(shù)時,數(shù)組名不退化,因為sizeof不是函數(shù)。

  請問以下代碼有什么問題

  int main()

  {

  char a;

  char *str = &a;

  strcpy(str,”hello”);

  printf(str);

  return 0;

  }

  沒有為str分配內(nèi)存空間,將會發(fā)生異常

  問題出在將一個字符串復制進一個字符變量指針所指地址。雖然可以正確輸出結(jié)果,但因為越界進行內(nèi)在讀寫而導致程序崩潰。

  Strcpy的在庫函數(shù)string.h中,程序的主要程序在于越辦進行內(nèi)存讀寫導致程序崩潰。

  2,const char* s = “AAA”;

  Printf(“%s”,s);

  S[0] = ‘B’;

  Printf(“%s”,s);

  “AAA”是字符串常量,S是指針,指向這個字符串常量,所以聲明s的時候就有問題。

  Const char* s =”AAA”,然后又因為是常量,所以對S[0]的賦值操作是不合法的。

  3,Char szstr[10];

  Strcpy(szstr,”0123456789″);

  產(chǎn)生什么結(jié)果?為什么?

  正常輸出,長度不一樣,會造成非法的OS,覆蓋別的內(nèi)容

  4,交換兩個變量的值,不使用第三個變量。即a=3,b=5,交換之后a=5,b=3;

  兩種解法,一種是用算術(shù)算法,一種是用^(異或)

  a = a+b;

  b = a-b;

  a = a-b;

  or

  a = a^b;//只能對int ,char

  b = a^b;

  a = a^b;

  or

  a ^= b ^=a;

  

本文已影響6827
上一篇:阿里巴巴集團面試問題精選 下一篇:Java Web工程師面試筆試題

相關(guān)文章推薦

|||||