
C言語 char str[8]; str="C_Gengo"; この記述はなぜ駄目なんでしょうか?
2017/10/2606:19:48
ベストアンサー以外の回答
1〜2件/2件中
- 並び替え:回答日時の
- 新しい順
- |古い順
2017/10/2608:34:13
『この記述はなぜ駄目なんでしょうか?』
代入(assignment)なんですよね。配列の代入を認めるとすれば、そこでコピー処理が発動する形になります。CPU に一定程度の負荷が発生するわけですが、それが代入演算子だけで行われて良いのかどうか。C 言語を考案した人の意見としては、駄目でしょそんなの…ということだったのでしょう。
strcpy や memcpy などで関数呼び出しの形で表現してもらえば、そこで負荷がかかることは目に見えて分かります。
たぶん、そういう発想。だから敢えてダメにした。という事だと思われます。
初期化(initialization)においては、元来は処理が発生していませんでした。単に、データの定義に過ぎなかったのです。自動変数である配列に対しては初期化できなかったので。(昔は必ず static を付けたものですよ)
でも、どうせ大した規模じゃないわけだから(自動変数の場合は大きな配列を用意することは元々無理なので)、初期化を認めてもいいじゃないかっていうことになったのだと思います。
『メモリ上に7+1文字分確保されているので、その上に代入はできないと。。。』
ですよね。理屈として成り立ちます。
別の人が C 言語を考案してたら、そういう言語仕様になったかもしれませんね。ていうか、C 言語ではない別の言語ということかと。
ちなみに、C++ でも配列の代入は出来なくしたまま。将来的に変わるのか変えようとしてるのか、その辺は分かりませんが。
2017/10/2606:35:58
返信を取り消しますが
よろしいですか?
- 取り消す
- キャンセル
関連度の高い質問
- C言語でchar str[] = "ABC";と宣言されたものをあとでstr[] = "DEF";という代入が...
- C言語でchar str[] = "9,(英数字スペースなどが130文字分)"文字列strを9と(英数字...
- c言語でchar str[]="string";printf("%c%c",*(str+3),*str+3);の出力結果は違いま...
- c言語でchar str[]="string";printf("%c%c",*(str+3),*str+3);の出力結果は違いま...
- C言語の char (*str)[50] という様な宣言方法についての質問です参考書で char (*...
「char str、C言語」に関する質問
このカテゴリの回答受付中の質問
- スプライザーみたいなアプリを作りたいんですけど何言語で組めばいいか教えてくだ...
- 外国為替のFXのMT4のEAで教えてください。このトレードをマーチン化(ナン...
- LinuxのTCPに関する質問です。 環境:Ubuntu18.04 下記のserver.cとclient....
- キーボードから正の整数 n と正の実数 a,r を受け取り, 初項 a, 公比 r の等比...
- 16進数のテキストデータを入力し、バイナリデータのファイルを出力する Linuxでc...
- 大学のプログラミングの宿題です。 うまく作れないです。お願いします。
- C言語なんですがこれのプログラミング教えてください!
- python opencvを使って画像に円の描画をしたいです. プログラミング初心者です...
- Javaで a,b c,d e,f g,h みたいなペアになってるテキストファイルを一行ず...
- opencv c++において、cvFindContoursで図形の面積を求めた後、ある値以下の面積の...
このカテゴリの投票受付中の質問
- この文字バグの解決方法教えてください Visual Studio 2019使ってます。 言語...
- プログラミングのC言語について質問です。 3つの整数値を昇順に並べ替える関数 v...
- C言語で大きさ5の文字型(char)の配列を2つ宣言し、ポインタを使って、一方 の...
- C言語のポインタについて、 「構造体」というものを使って線分を引くプログラムを...
- Arduino nanoで赤外線受信によりサーボモータ動作 超初心者プログラマーです ...
- c言語で、a[]の文字列とb[]~h[]の文字列を比較するプログラムを作っています。b~h...
- 16進数を2進数に変換するプログラムをcで組みたいんですけどどういうアルゴリ...
- ArduinoのAdafruitってなんですか? #include "Adafruit_TSL2591.h" と #include ...
- これってプログラム言語ですか?
- unsigned int のような、符号なしの型の変数はどのような際に宣言するが良いので...
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。

