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