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

Kirim email ke