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