Der zweite Tag des Erlernens der C-Sprache: Datentypen und Variablen der C-Sprache (Teil 2)

Inhaltsverzeichnis:

        1. Einführung und Speicherung von Variablen

        2. Arithmetische Operatoren, Zuweisungsoperatoren, unäre Operatoren

        3. Einführung in scanf und printf

1. Einführung und Speicherung von Variablen

    1.1.Erstellung von Variablen

      Jetzt verstehen Sie, was Typen sind. Typen werden zum Erstellen von Variablen verwendet.

      Was sind die Variablen? In der Sprache C werden Größen, die sich nicht häufig ändern, als Konstanten bezeichnet, und Größen, die sich häufig ändern, werden als Variablen bezeichnet.

      Wie werden Variablen erstellt? Hier ist ein Beispiel:

data_type   name;
//数据类型  变量名;
int age; // Ganzzahlvariable
char ch; // Zeichenvariable
doubleweight; // Gleitkommavariable

     Wenn eine Variable erstellt wird, muss ihr ein Anfangswert zugewiesen werden. Dieser Vorgang wird als Initialisierung bezeichnet. wie folgt:

// 初始化
int age = 18;
char ch = 'D';
double weight = 70.5;
unsigned int height 100;

   1.2. Klassifizierung von Variablen

       Unterteilt in: globale Variablen, lokale Variablen

        Globale Variablen: Variablen, die außerhalb geschweifter Klammern definiert sind, sind globale Variablen. Globale Variablen werden in einem größeren Umfang verwendet,

                          Wenn Sie es im gesamten Projekt verwenden möchten, gibt es eine Möglichkeit, es zu verwenden.

       Lokale Variablen: In geschweiften Klammern definierte Variablen sind lokale Variablen.

                      Der Anwendungsbereich lokaler Variablen ist relativ begrenzt und kann nur innerhalb des lokalen Bereichs verwendet werden, in dem sie sich befinden.

         Code-Demo:

#include <stdio.h>

int global = 2023; // 全局变量

int main()
{
    int locol = 2018; // 局部变量
    printf("%d\n", locol);
    printf("%d\n", global);
    return 0;
}

   1.2.1. Achten Sie auf die Benennung von Variablen

        Wenn eine globale Variable als n definiert ist und in der lokalen Variablen auch eine Variable mit dem Namen n definiert ist, wird im Prozess zunächst der Wert von n der lokalen Variablen verwendet. Hier müssen Sie aufpassen. Der folgende Code demonstriert:

#include <stdio.h>

int n = 1;

int main()
{
    int n = 2;
    printf("%d\n", n); // 这里打印出来的值应是2,所以变量名命名的时候需要注意。
    return 0;
}

  1.3. Wo werden globale Variablen und lokale Variablen im Speicher gespeichert?

        Beim Erlernen der C/C++-Sprache konzentrieren wir uns auf drei Bereiche: Stapelbereich, Heap-Bereich und statischer Bereich;

        1. Lokale Variablen werden im Stapelbereich des Speichers abgelegt.

        2. Globale Variablen werden im statischen Speicherbereich abgelegt.

        3. Der Heap-Bereich wird zur dynamischen Speicherverwaltung verwendet

       Wie nachfolgend dargestellt:

2. Arithmetische Operatoren, Zuweisungsoperatoren, unäre Operatoren

    Arithmetische Operatoren (Operatoren): +, -, *, /, %

    Zuweisungsoperatoren: =, +=, -=, *=, /=, %=, >>=, <<=, &=, |=, ^=

    Unäre Operatoren: ++, --, +, -

   2.1. Der arithmetische Operatorcode wird wie folgt demonstriert:

// 算术操作符
// +、-、*、/、%
int main()
{
	int a = 1;
	int b = 2;
	int c = 3;
	int d = 4;
	int e = 6;
	float f = 7.1;
	printf("%d\n", a + b);
	printf("%d\n", b - a);
	printf("%d\n", b * c);
	printf("%d\n",e / d); // 于C语⾔⾥⾯的整数除法是整除,只会返回整数部分,丢弃⼩数部分。
	printf("%f\n", e / f); // 浮点数的除,返回就不会丢弃小数部分。
	printf("%d\n", e % d); // 运算符 %,即返回两个整数相除的余值。这个运算符只能⽤于整数,不能⽤于浮点数。
	// 负数取模的情况:
	// 由一下得出 第⼀个运算数的正负号决定了结果的正负号
	printf("%d\n",11 % 5);  // 1
	printf("%d\n", -11 % -5); // -1
	printf("%d\n", -11 % 5); // -1
	
	return 0;
}

   Operationsergebnis:

  2.2.Zuweisungsoperator

   Das Zuweisen eines Anfangswerts zu einer Variablen bei ihrer Erstellung wird als Initialisierung bezeichnet, und die Zuweisung eines anderen Werts nach der Erstellung der Variablen wird als Zuweisung bezeichnet.

int a = 0; // 初始化
a = 200; // 赋值

   Der Zuweisungsoperator [=] ist ein Operator, der einer Variablen jederzeit einen Wert zuweisen kann.

   2.2.1 Kontinuierlicher Einsatz

             wie folgt:

int a = 3;
int b = 4;
int c = 5;
c = b = a + 3; // 虽然C语言支持这样写,但是不方便阅读代码,建议拆开进行写


int a = 3;
int b = 4;
int c = 5;
b = a + 3;
c = b;

   2.2.2. Zusammengesetzter Zuweisungsoperator

        Beim Schreiben von Code führen wir häufig Inkrementierungs- und Dekrementierungsoperationen für eine Zahl durch, wie im folgenden Code gezeigt:

int a = 10;
a = a + 3;
a = a - 2;

        Die C-Sprache bietet eine bequemere Möglichkeit, solchen Code zu schreiben:

int a = 10;
a += 3;
a -= 2;  // 还有更多的复合赋值符,上面我也列出来了,都可以去尝试一下。

   2.3. Unärer Operator

        ++, --, + (positiv), - (negativ) sind unäre Operatoren.

         2.3.1.++ und --

         ++ ist ein selbsterhöhender Operator, unterteilt in Präfix ++ und Postfix ++. -- ist ein selbsterhöhender Operator, ebenfalls unterteilt in Präfix -- und Postfix --.

        2.3.2. Präfix++

int a = 10;
int b = ++a; // ++的操作数是a,是放在a前面的,就是前置 ++
printf("%d\n", b);

// 计算⼝诀:先+1,后使⽤;
// a原来是10,先+1,后a变成了11,再使⽤就是赋值给b,b得到的也是11,所以计算技术后,a和b都是11.
int a = 10;
a = a+1;
b = a;
printf("a=%d b=%d\n",a , b);

     2.3.3.Post++

int a = 10;
int b = a++;//++的操作数是a,是放在a的后⾯的,就是后置++
printf("a=%d b=%d\n",a , b);

// 计算⼝诀:先使⽤,后+1
// a原来是10,先使⽤,就是先赋值给b,b得到了10,然后再+1,然后a变成了11,所以直接结束后a是
11,b是10
int a = 10;
int b = a;
a = a+1;
printf("a=%d b=%d\n",a , b);

     2.3.4. Präfix-- 

// 如果你懂了前面我写的前置++,那前置--是同理的,只是把加1,换成了减1;
// 计算⼝诀:先-1,后使⽤
int a = 10;
int b = --a; // --的操作数是a,是放在a的前⾯的,就是前置--
printf("a=%d b=%d\n",a , b);//输出的结果是:9 9

     2.3.5.Post--

// 同理后置--类似于后置++,只是把加一换成了减一
// 计算⼝诀:先使⽤,后-1
int a = 10;
int b = a--; // --的操作数是a,是放在a的后⾯的,就是后置--
printf("a=%d b=%d\n",a , b);//输出的结果是:9 10

     2.3.6.+ und -

        Hier ist + ein positives Vorzeichen und – ein negatives Vorzeichen, beides sind unäre Operatoren.

        Operator + hat keinen Einfluss auf positive und negative Werte und ist ein Operator, der komplett weggelassen werden kann.

        Aber es wird kein Fehler gemeldet, wenn ich es schreibe.

    int a = +10; entspricht int a = 10;

       Operator - wird verwendet, um das Vorzeichen eines Werts zu ändern. Wenn Sie - vor einer negativen Zahl hinzufügen, erhalten Sie eine positive Zahl. Wenn Sie - vor einer positiven Zahl hinzufügen, erhalten Sie eine negative Zahl.

int a = 10;
int b = -a;
int c = -10;
printf("b=%d c=%d\n", b, c); // 这⾥的b和c都是-10
int a = -10;
int b = -a;
printf("b=%d\n", b);  // 这⾥的b是10

3. Einführung in scanf und printf

    3.1.printf

        Grundlegende Verwendung: Die Funktion von printf () besteht darin, Parametertext auf dem Bildschirm auszugeben. Das f im Namen steht für Format, was bedeutet, dass das Format des Ausgabetextes angepasst werden kann.

#include <stdio.h>

int main(void)
{
 printf("Hello World"); // 会在屏幕输出 Hello World
 return 0;
}

   3.1.Wie bricht man die Zeile nach der printf-Ausgabe um?

        printf() fügt am Ende der Zeile nicht automatisch ein Zeilenumbruchzeichen hinzu. Nach dem Ausführen

        Der Cursor bleibt am Ende der Ausgabe und wird nicht automatisch umgebrochen.

        Um den Cursor an den Anfang der nächsten Zeile zu bewegen, können Sie am Ende des Ausgabetextes ein Zeilenumbruchzeichen \n hinzufügen.

#include <stdio.h>
int main(void)
{
 printf("Hello World\n");
 return 0;
}

        Wenn innerhalb des Textes ein Zeilenumbruch vorhanden ist, wird dies auch durch Einfügen eines Zeilenumbruchzeichens erreicht, wie im folgenden Code gezeigt:

#include <stdio.h>
int main(void)
{
 printf("Hello\nWorld\n");

 printf("Hello\n");
 printf("World\n");
 return 0;
}

        printf() ist in der Header-Datei stdio.h der Standardbibliothek definiert. Bevor diese Funktion verwendet werden kann, muss diese Header-Datei am Anfang der Quellcodedatei eingefügt werden.

    3.2. scanf

        Wenn wir eine Variable haben, können wir die Funktion scanf verwenden, um einen Wert in die Variable einzugeben. Wenn wir den Wert der Variablen auf dem Bildschirm ausgeben müssen, können wir die Funktion printf verwenden. Hier ist ein Beispiel:

        Grundlegende Verwendung: Die Funktion scanf() wird verwendet, um die Tastatureingaben des Benutzers zu lesen.

        Wenn das Programm diese Anweisung erreicht, stoppt es und wartet auf Benutzereingaben über die Tastatur.

        Nachdem der Benutzer Daten eingegeben und die Eingabetaste gedrückt hat, verarbeitet scanf() die Eingaben des Benutzers und speichert sie in einer Variablen.

        Sein Prototyp ist im Header stdio.h definiert.

        Die Syntax von scanf() ähnelt printf().

    scanf(%d, &i);

        Der erste Parameter %d von scanf() gibt an, dass die Benutzereingabe eine Ganzzahl sein soll. %d ist ein Platzhalter, % ist das Platzhalter-Flag und d steht für eine Ganzzahl. Der zweite Parameter & gibt an, dass die vom Benutzer über die Tastatur eingegebene Ganzzahl in der Variablen i gespeichert wird.

        Hinweis: Der &-Operator muss vor der Variablen eingefügt werden (außer bei Zeigervariablen), da scanf() keinen Wert, sondern eine Adresse übergibt, d. h. die Adresse der Variablen i zeigt auf den vom Benutzer eingegebenen Wert. Wenn die Variable hier eine Zeigervariable ist (z. B. eine Zeichenfolgenvariable), muss der &-Operator nicht hinzugefügt werden.

     3.2.1.Rückgabewert von scanf

        Der Rückgabewert von scanf() ist eine Ganzzahl, die die Anzahl der erfolgreich gelesenen Variablen angibt.

        Wenn keine Elemente gelesen wurden oder der Abgleich fehlgeschlagen ist, wird 0 zurückgegeben. Wenn ein Lesefehler auftritt oder das Ende der Datei erreicht wird, bevor Daten erfolgreich gelesen wurden, wird die Konstante EOF zurückgegeben.

        

         Drücken Sie in der VS-Umgebung dreimal Strg+Z, um die Eingabe zu beenden. Wir können sehen, dass r 2 ist, was bedeutet, dass 2 Werte korrekt gelesen wurden. Wenn Sie keine einzelne Zahl eingeben, drücken Sie einfach dreimal Strg+Z und die Ausgabe r ist -1, also EOF.

        3.2.2. Platzhalter

        Die häufig verwendeten Platzhalter für scanf() lauten wie folgt und stimmen mit den Platzhaltern für printf() überein:

  • %c: Zeichen        

  • %d: Ganzzahl

  • %f: Gleitkommazahl vom Typ Float

  • %lf: Gleitkommazahl vom Typ Double

  • %Lf: lange Gleitkommazahl vom doppelten Typ

  • %s: Zeichenfolge

  • %[]: Geben Sie einen Satz übereinstimmender Zeichen in eckigen Klammern an (z. B. %[0-9]). Wenn Sie auf Zeichen stoßen, die nicht im Satz enthalten sind, wird der Abgleich beendet
    .

        Hinweis: Bei allen oben genannten Platzhaltern, mit Ausnahme von %c, werden die führenden Leerzeichen automatisch ignoriert. %c ignoriert Leerzeichen nicht und gibt immer das aktuelle erste Zeichen zurück, unabhängig davon, ob es sich um ein Leerzeichen handelt. 

Supongo que te gusta

Origin blog.csdn.net/m0_58724783/article/details/131946688
Recomendado
Clasificación