/C++,: Sadece bu durumda"merhaba" ve {"merhaba"} arasındaki fark nedir? Aşağıdaki iki satır kodu arasındaki fark ne C'de
char *str1="hello";
char *str2={"hello"};
/C++,: Sadece bu durumda"merhaba" ve {"merhaba"} arasındaki fark nedir? Aşağıdaki iki satır kodu arasındaki fark ne C'de
char *str1="hello";
char *str2={"hello"};
, Bölüm 6.7:
Üretme montajcı "gcc S" ile aşağıdaki kodu oluşturur (her durumda biraz daha farklı bir sabit ile) tam olarak aynı şeyi oluşturmak teyit 0,9 Başlatma, paragraf 11: öyle
“bir sayısal alan için başlatıcı ... tek ifadesi, isteğe bağlı olarak ayraç içine olacaktır”. Anlamsal bir fark yoktur; Diş telleri basitçe mevcut olabilir veya anlamında bir değişiklik olmadan mevcut olmayabilir.
Stil. Her ikisi de aynı şeyle sonuçlanır ve ikisi de kötüdür. const char * str1="hello";
'u kullanmış olmalısınız.
{"merhaba"} dizi olarak düşünmüyor mu? {} m 'de yazdığımız diziyi tanımlamak için bildiğimiz gibi, bu konuda şaşılacak bir şey var ve ya char * str2 = {"merhaba", "merhaba"} ise; Bu durumda – Pratik
@ Pratik, tüm skaler türleri de '{}' başlatıcıları kabul eder. –
@JensGustedt Lütfen skaler tiplerin tanımını söyler misiniz? – yejinxin
bir dizi ve bir "dizesi" nedeniyle bir dize karakter bir dizidir arasında hiçbir fark yoktur.
https://stackoverflow.com/a/3462768/153225 bakınız.
parantez gereksizdir. 2011 C standardına göre
#include <iostream>
using namespace std;
void test1() {
const char *str1="hello1";
cout << str1 << endl;
}
void test2() {
const char *str2={"hello2"};
cout << str2 << endl;
}
int main() {
test1();
test2();
}
fark yok. ikisi de derlemeyi bozuyorlar –
@ BЈовић En azından C++ 'da değil, C' de (ve kimin ne olduğunu * "C/C++" * "). –
@ChristianRau - "C/C++" nin ne anlama geldiğini biliyorum ve siz de yaptığınızdan şüpheleniyorum. –