[C] String Masalah?

hai,

Dalam pernyataan pertama Anda dapat intialising sebuah string yang sempurna OK dengan Compiler, dimana kedua pernyataan yang salah dan akan sangat mungkin memberikan error "Lvalue diperlukan ..."

ketika kita menulis x = ( "ku") ... Perlu diketahui bahwa kita benar-benar mencoba untuk overwirte alamat Base array karakter x.Mana yang ilegal.

Dasar alamat yang harus dipertahankan dan tidak dapat dimodifikasi.Sedangkan i think
* x = "saya"; harus bekerja dengan beberapa kompiler.coba mereka keluar ...

sampai jumpa

 
is an initializer-list with one initializer.

Yang pertama adalah yang tidak konvensional (karena kurung keriting tidak diperlukan), tapi benar karena Anda dapat menginisialisasi declarator (variabel) baik dengan tugas-ekspresi atau daftar-initializer dikelilingi oleh kurung keriting. ( "Ku")
adalah sebuah initializer daftar dengan satu initializer.

Yang kedua adalah salah karena kurung keriting tidak diperbolehkan di sekitar tugas-ekspresi.Menghilangkan kurung keriting masih akan salah karena dengan begitu Anda akan dengan mencoba untuk menetapkan kembali array x.
and don't forget #include <strings.h>Jika Anda ingin menyalin sebuah string menjadi array char, lakukan ini: strcpy (x, "saya");
dan jangan lupa # include <strings.h>

because that would convert the address of string "my" to a char (resulting in garbage), and write it into the first element of array x.

Jangan lakukan * x = "saya";
karena itu akan mengubah alamat string "saya" untuk sebuah char (menghasilkan sampah), dan menuliskannya ke dalam elemen pertama dari array x.Tidak berguna.

Coba membaca comp.lang.c FAQ:
http://www.eskimo.com/ ~ SCS / C-faq / top.html
Itu penuh dengan pertanyaan dan jawaban yang umum, misalnya:
http://www.eskimo.com/ ~ scs/C-faq/q8.3.html

 

Welcome to EDABoard.com

Sponsor

Back
Top