顯示具有 指標 標籤的文章。 顯示所有文章
顯示具有 指標 標籤的文章。 顯示所有文章

2009年9月23日 星期三

C/C++筆記-const參數與函式

//i1、i2在函式中是const變數,不能改變值
const int& min(const int& i1, const int& i2)
{
  if(i1 < i2)
    return (i1);
  return (i2);
}
int main()
{
  min(1+2, 3+4);
  return 0;
}
/*
 * const的函式意義是指,若函式是傳回參考指標變數,
 * 則該變數傳回後不能直接變更回傳值
 * min(1+2,3+4)=0;由於是const函式,傳回值不能作改變
 */
##ShowAll##

C/C++筆記-將變數傳遞進參考指標函式

//好處是傳一般變數即可
void inc_counter(int& counter)
{
  ++counter;
}
int main()
{
  int a_count = 0;
  inc_counter(a_count);
  std::cout << a_count << '\n' ; //傳回值+1   return 0; } /* 這種作法似乎不能用在C語言 */
##ShowAll##

2009年9月11日 星期五

C/C++筆記-指標多重間接參照

/*
 * 指標本身也是有記憶體位址,
 * 所以宣告一個指向指標形態變數的指標是合法的
 */
int **pp,*p,x=5;
pp = &p;
p = &x;
**pp = 10; //最後x值是10
##ShowAll##

C/C++筆記-指標意義、指標運算、陣列指標

//&運算子的意義為:取得變數的記憶體位址
//*運算子的意義為:取得變數的記憶體值

int *ptr,a;
ptr = &a;
ptr++; //將指標ptr指向變數a的後4個bytes
ptr = ptr - 20; //將指標ptr指向變數a的後20*4個bytes

int *ptr,a[10];
ptr = a+5;
printf(%d %d,*a,*ptr) //會印出陣列a[0]的數值和a[5]的數值
##ShowAll##

2009年8月15日 星期六

C/C++筆記-函數的指標

函數也在記憶體中,所以指標也可以指向函數

int add(int,int);
int add(int,int);
int main(void)
{
  int ans, (*p)(int x, int y); //宣告函數指標p
  p = add; //將p指向函數add
  ans = (*p)(3,4) //間接呼叫add函數
  printf("%d",ans);
}

void add(int x,int y)
{
  returb x+y;
}
##ShowAll##

C/C++筆記-將指標傳遞進函式

void func(int*,int);

int main(void)
{
  int x=0,*p;
  p = &x;
  func(p,3); //Call-by-Reference
  printf("x = %d",x);
}

void func(int *p,int y)
{
  *p = y;
}
##ShowAll##
/