C語言常見使用問題2

每一天的小白發表於2020-10-24

繼上一篇C語言常用使用問題

  1. scanf和getchar混合使用讀取時,需要注意的問題
輸入:1 2 3
scanf讀取到一個數後,getchar會繼續讀取後面的字元,因此兩者讀出的數是:
scanf:123
getchar:' ' ' ' '\n'
如果用陣列來儲存儲存的資料時,並且以getchar來判斷一行的讀取結束,需要將getchar放置在賦值的結尾
  1. for迴圈結構中,初始化條件只會執行一次
n = 0;
char ch;
for(ch = getchar(); ch!='\n'; n++)可能會無限迴圈
  1. 柔性陣列
int a[] = {};
//int a[0];
a[0] = 1;
a[1] = 2;
int b[][4] = {};
printf("%d %d ", a[0], a[1]);
  1. 針對指向陣列的指標來修改內容,由於指向是陣列的元素地址,會直接改變原來陣列的內容,這就是指標修改需要注意的地方
  2. strcat 和 strcpy的使用和區別,strcat,在dist的後面接上source,然後從dist+offset位置開始取出
char p1[15] = "abcd";
char *p2 = "ABCD", str[50] = "xyz";
char *p3 = strcat(p1+2, p2+1);
strcpy(str+2, p3);
  1. 柔性陣列的陣列名(指標)不是指向NULL
int trap(int* height, int heightSize){
    if(heightSize == 0)
    return 0;
輸入:height如果為[],不代表height是NULL,需要判斷的資料的個數
int a[0]; a != NULL
int a[] = {};
  1. 預設的浮點型是double
(short)10 / 8.2 * 8;
  1. fdaf

相關文章