No.4ベストアンサー
- 回答日時:
> I didn't even know this at all~. Is there any specific reason for this? I mean I don't get the point of avoiding to just put the string type in there and let things go easier.
I think you have got the point.
If there were easier way of writing, why don't you use that?
I mean, there is a theory behind it, but a language should give you a sort of "shortcut".
Now you understand, in theory, there is no such string type in C. There is only arrays filled with binaries.
However, even though it were correct, you would be messed up if C forced you to write a message every time like this:
char str[] = {'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'v', 'e', 'r', 'y', ' ', 'b', 'u', 'l', 'l', 's', 'h', 'i', 't', '!', '\0'};
The theory requires this. Do you want to write like this every time? The answer would be "No kidding!".
Thus, almost all languages provide some "shortcuts" of writing, in order to let you avoid pain in the ass. Those kinds of short cuts are called "Syntax Sugar", which implies sugar makes some very bitter syntax juice barely drinkable.
As a result, the syntax sugar of array with characters in C could be written as:
char str[] = "This is a piece of cake!"
This relatively gives you no headache, related to "right meaning" and its syntax.
> Maybe I should have known this and again, I know this is partly my fault of not attending those classes but like for what reason? I've had multiple lectures on algorithms and computation in C and yet didn't know this...
I am sorry to hear that, but, to be honestly, C is not a suitable language for new comers into the world of programming. The school, or you had better start with much easier language, like Python or Ruby, popular one now a day.
C really sucks. C is pain in the ass. C is a tablet of anti-aspirin.
At least, your responsibility about this is less than 50%. The remainder is C itself.
ありがとうございます。
I came to see that maybe C language is not that sophisticated or almost perfect as I thought. People around me say things like C is the most powerful language and there is almost nothing you can't do with it and I was like okay, then I hafta learn this but no~ it was not that easy and simple... You are saying the language itself is not really well-built, ryt? Ofc not like the structure is cracked or something but at least I think it's not for someone who just started coding like me (some ppl around me have been coding as a hobby for years) and I don't like how professors are like "you know this stuff, ryt? and this one too, so you must be able to do this matrix analysis and that's why it's due tomorrow".
Since I can't see the intention of those great brains that made these things from nothing yet, it feels like maybe I should just accept how it is and not really care about the whys when confronting with the complexity of programming languages.
Thank you as always~ (。◕‿‿◕。)
No.1
- 回答日時:
You may misunderstand.
In C, "Hello" is not a string. It is definitely an array.
Frankly speaking, C does not have any "string" type, which the other ordinary programming languages have.
What C only has is an array filled with a bunch of binaries, and sometimes, those binaries are recognized as "Characters", or char.
Therefore,
char str[] = "Hello";
is something like an alternative way of writing, and literally, it directly means
char str[] = {'H', 'e', 'l', 'l', 'o' ,'\0'};
.
That is all.
ありがとうございます。I didn't even know this at all~. Is there any specific reason for this? I mean I don't get the point of avoiding to just put the string type in there and let things go easier. Maybe I should have known this and again, I know this is partly my fault of not attending those classes but like for what reason? I've had multiple lectures on algorithms and computation in C and yet didn't know this...
どうして?と思う。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
[C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について
C言語・C++・C#
-
C言語について。
C言語・C++・C#
-
C言語の質問です、プログラミング初心者です このような文字列があった場合 abcdef☆ghijk"
C言語・C++・C#
-
4
c言語で自然数nを入力、2以上n以下の偶数の累積sumを求めるプログラムをfor文を使って作りたいで
C言語・C++・C#
-
5
コンピュータでいう「割り込み」とはどういう意味ですか?わかりやすく教えてほしいです。
C言語・C++・C#
-
6
C言語について教えて欲しいです。 ファイルの中身をコピーするプログラムを作ってます aというファイル
C言語・C++・C#
-
7
PCの性能とビルド時間
C言語・C++・C#
-
8
C言語について。
C言語・C++・C#
-
9
c言語について array[i]-‘0’ これってどーゆー意味ですか? (ちなみに16進数を10進数
C言語・C++・C#
-
10
C言語について。
C言語・C++・C#
-
11
C言語で移動平均のプログラムを作りたいのですが、数値をファイルから取ってきて計算をするプログラムはど
C言語・C++・C#
-
12
C言語
C言語・C++・C#
-
13
プログラム例え話について。
C言語・C++・C#
-
14
コールとリンク違いについて。
C言語・C++・C#
-
15
あまりわかりません。 複素数$c$を具体的に定めた複素写像写像$f_c(z)$に対して、原点を含む領
C言語・C++・C#
-
16
C言語について質問です。 以下のような結果を出すためにはどのようなコードが良いですか?サンプルコード
C言語・C++・C#
-
17
C++言語の16進数の表現についておしえてください
C言語・C++・C#
-
18
C言語
C言語・C++・C#
-
19
参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++
C言語・C++・C#
-
20
gcc のコンパイラオプションについて
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
char型にint型の数値を代入する。
-
5
文字列内の数字削除
-
6
new charとnew char[N]の違いは?
-
7
strcpy関数で文字型変数へのポ...
-
8
CStringからchar*への型変換に...
-
9
strcat関数を自作したいです
-
10
C言語のintとcharの違いってな...
-
11
wsprintf( ポインタ , "%d" , "...
-
12
C言語でポインターで詰まってい...
-
13
C言語 strstrの実装
-
14
C言語 少しの疑問
-
15
ポインタ配列
-
16
可変長構造体をファイルから読...
-
17
csvファイルを構造体に格納した...
-
18
文字列strの中から文字cを探す...
-
19
エクセルのMID関数は、C言語では?
-
20
fgetc( )の戻り値はなぜ整数??
おすすめ情報
公式facebook
公式twitter