oic mas...tapi klo unary itu apa ya..? (sory mungkin ini adalah pertanyaan yang paling aneh yang pernah mas dengan soalnya gw belajar pemrgrmn arahnya agak kebalik2... karena gw langsung belajar utk bikin skrip tanpa mempelajari seluruh tipe2 data ) :D
thnks for replyin'
salam...
On Fri, 16 Nov 2007 08:49:03 +0700
 Donny Kurnia <[EMAIL PROTECTED]> wrote:
genjuro wrote:
mas, gw  juga ada pertanyaan nih... tlg dijawab ya...
apa mksd dari left-to-right ? spt yang ada dalam contoh:

a = 5 + 7 % 2

Penulisan seperti ini tidak disarankan, karena hasil tergantung pada prioritas operator. Gunakan tanda kurung agar hasil sesuai dengan yang
diinginkan.

saya pikir hasilnya adalah 0 (a = 0), ternyata hasilnya, klo ngga salah nerjemahin, adalah 6. sekali lagi klo ngga salah (terutama dalam
menerjemahkan), di katakan klo prosesnya spt ini:

a = 5 + (7 % 2)

dan BUKANNYA:

a = (5 + 7) % 2

saya lihat dalam semacam penggolongannya, + - descriptionnya additive (ada juga + - yang descriptionnya adalah unary sign operator)
groupingnya left-to-right.

Kalau + dan - yang unary, ya konstantanya juga cuman ada satu, contoh:
i = +5;
j = -10;

Contoh diatas adalah + dan - sebagai operator unary.

saya juga mau tanya klo misalnya ada kode spt ini:

#include <iostream>
using namespace std;

//klo void* untuk "mengambil" alamat dari argumen kan?
void increase (void* data, int psize)
{
  if ( psize == sizeof(char) )
{ char* pchar; pchar=(char*)data; ++(*pchar); }//klo (char*) untuk apa?
  else if (psize == sizeof(int) )
{ int* pint; pint=(int*)data; ++(*pint); }//(int*) juga untuk apa ? //bukannya klo void* itu sudah mengkopi tipe dari argumen?
}

Coba baca-baca lagi pembahasan tentang pointer. Penggunaan * memang kadang membingungkan, bahkan bagi yang sudah lama memprogram dengan bahasa C. Lihat lagi apa arti dari pointer dan penggunaannya, baik pada
variabel, maupun sebagai parameter fungsi.
char * adalah pointer ke array of char, ini sering digunakan sebagai ' 'string' di C, karena bahasa C tidak memiliki tipe string build in.

int main ()
{
  char a = 'x';
  int b = 1602;
  increase (&a,sizeof(a)); //apa fungsi dari & ?
  increase (&b,sizeof(b)); //& juga untuk apa di sini?
  cout << a << ", " << b << endl;
  return 0;
}

oh ya, mengenai skrip sebelumnya ada sedikit lagi yang mo gw tanyain
(mungkin lebih bagus klo gw kasi ulang skripnya):

Jika parameternya adalah bertipe pointer, ketika fungsi dipanggil, yang dipassing bukan variabel, melainkan alamatnya. Untuk mendapatkan alamat
dari variabel, digunakan operator &

#include <iostream>
using namespace std;

int addition (int a, int b)
{ return (a+b); }
/*sptnya gw pernah tanya ttg fungsi return tapi jawabannya ngga ngerti sama sekali, mungkin karena di jawab berdasarkan linux ya? ini return
mengembalikan nilai kemana (pastinya)?

Sebuah fungsi kan dipanggil dari tempat lain. Fungsi yang mengembalikan nilai (dengan menggunakan return) akan mengembalikannya ke pemanggil
fungsi itu.

int subtraction (int a, int b)
{ return (a-b); }

int operation (int x, int y, int (*functocall)(int,int))
{
  int g;
  g = (*functocall)(x,y);
return (g);//ini juga. apa mengembalikannilai g ke m? apa fungsi () ?
}

nilai g akan dikembalikan ke penampung nilai yang menampung kembalian
dari fungsi operation.

int main ()
{
  int m,n;
  int (*minus)(int,int) = subtraction;

  m = operation (7, 5, addition);
  n = operation (20, m, minus);
  cout <<n;
  return 0;
}

nah, disini ini. Masing-masing variabel m dan n akan menampung
kembalian/return dari fungsi operation.

thnk u sebelumnya udah mo menjawab pertanyaan gw ini (sory klo banyak, ngga apa2 koq, jawab aja yang mau dijawab...) dan juga sebelumnya udah menjawab ttg pointer... gw akan berpikir lagi untuk bertanya2 lagi
hehehehe... :D

--
Donny Kurnia
http://hantulab.blogspot.com
http://hantulab.multiply.com


--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis


‘========================================================================================
"Asah Pengetahuanmu dengan mengikuti Makasar Cyber Netkuis di 
http://netkuis.telkom.net/";
(khusus pelanggan TelkomnetInstan dan Speedy Makasar [kode area 0410, 0411, 
0418, 0413, 0481, 0482, 0414, 0417 dan 0419]).
Menangkan Laptop, Desktop, Kunjungan ke ITB, HP Flexi dan voucher perdana IVAS 
di akhir periode (10 November 2007 - 10 Januari 2008).”
========================================================================================

--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke