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