Maison >développement back-end >Golang >Une brève discussion sur l'allocation de mémoire du point de vue du langage Go
Eh bien, cette année, nous sommes en 2023. D'après les différents projets de développement en cours, le langage C est en effet beaucoup utilisé Peu, à l'exception de certains domaines tels que l'embarqué, le C est rarement vu, mais pourquoi est-ce que j'entends encore xx dire que nous devons bien apprendre le langage C
D'après ma compréhension, en fait, apprendre le langage C, ce que vous apprenez ne l'est pas ? la langue, mais les choses qui se cachent derrière la langue, les conceptions qu'elle représente et l'essence qu'elle représente.
Je crois que de nombreux débutants ont peut-être entendu un certain patron dire dans le groupe, j'ai appris xx langage en une semaine, alors toi. a commencé à travailler directement, puis vous avez dit en silence, faites semblant d'avoir 13 ans, ou peut-être que vous venez de commencer à vous battre dans le groupe.
Alors, peut-on vraiment dire qu’on peut apprendre une langue en une ou deux semaines ?
Je peux être responsable et vous dire qu'il n'y a absolument aucun problème, mais qu'il faut le construire sur des bases solides.
Et les pointeurs constituent une base particulièrement importante. Quel que soit le langage utilisé de nos jours, l'essence est l'application de pointeurs, mais elle est simplement encapsulée.
Mais ce que cela provoque, c'est que si la fondation est instable, cela posera des problèmes inexplicables et incompréhensibles, surtout pour les débutants.
Ainsi, quel que soit votre stade actuel, ceux qui n'ont pas appris le langage C doivent apprendre le C et reprendre les bases importantes qui ont été laissées derrière eux.
Alors, permettez-moi d'abord de vous donner une brève introduction.
La pile technologique utilisée cette fois est le langage Go En théorie, il utilise le langage C, mais parce que lorsqu'on débute avec les pointeurs, Go et C L'essence est fondamentalement. la même chose, donc le langage Go, plus convivial, est utilisé.
Nous ajouterons Python plus tard, le comparerons avec Go, quelles sont les différences et verrons comment le populaire Python alloue la mémoire.
Actuellement, en lisant cet article, je recommande toujours à vos amis d'avoir certaines connaissances de base, au moins de comprendre comment définir des variables et ainsi de suite.
Tout d'abord, nous devons comprendre les principaux composants de l'ordinateur.
首先,简单的说,至少由 CPU
CPU
内存条
硬盘
显卡
显示器
操作系统(Linux,Windowns)
内存条
硬盘
显示器
🎜🎜🎜 🎜 🎜🎜🎜🎜操作系统(Linux,Windowns)
🎜🎜🎜🎜等。🎜🎜🎜🎜那么这些硬件是如何互相配合的呢。🎜🎜🎜 🎜🎜🎜🎜嗯...大概是这样子的,有点丑。🎜🎜En bref :
Chaque application du système (qq, WeChat, etc.) veut laisser l'ordinateur jouer de la musique, et le moniteur affiche quelque chose, comme écrire un fichier l'accès au disque dur nécessite le consentement du système d'exploitation.
Le système d'exploitation appelle le CPU pour terminer l'exécution des instructions, et le CPU lit l'application ouverte dans la clé USB. Par conséquent, pourquoi le disque dur mécanique est-il si bloqué ? maintenant l'état solide bruisse. Ceci termine le transfert des données du disque dur vers les données de la clé USB.
Le CPU analyse les données d'application lues dans la clé mémoire. S'il s'agit de données traitées par le CPU, elles seront prises et calculées par lui-même. S'il s'agit de données traitées par la carte graphique, elles seront appelées. à la carte graphique pour le calcul. S'il s'agit de données sonores, elles seront calculées par la carte son, attendez.
Grâce à la coordination ci-dessus, l'ensemble de l'application peut essentiellement s'exécuter. Si des données doivent être écrites sur le disque dur, le processeur peut simplement écrire les données de la clé USB sur le disque dur.
D'accord, grâce à ce qui précède, nous pouvons fondamentalement comprendre la relation de coordination entre le système d'exploitation et chaque matériel.
Laissez-moi vous dire un secret, le code que nous écrivons s'exécute essentiellement dans la clé USB. De même, les applications mentionnées ci-dessus exécutent essentiellement le code de l'application dans la clé USB.
Oui, c'est ça, une clé USB.
De même, je peux également comprendre la structure interne de la clé USB de cette manière.
Nous pouvons comprendre les clés USB comme des maisons, juste comme ça.
est toujours moche...
Mais notre clé USB a coordonnées , également appelées adresse, chaque petite grille Il y a des valeurs un par un.
Mais d'habitude, on le comprend catégoriquement, comme ça.
Les adresses (coordonnées) sont généralement exprimées en hexadécimal, et quelle que soit la valeur, c'est stupide.
Jetons un coup d'œil à un code Go très court.
Déclarez une variable d'âge, attribuez-lui une valeur de 18, puis affichez-la. Comment
package main import "fmt" func main() { var age int = 18 fmt.Println("我今年:",age,"岁") }
est représenté dans la mémoire.
Notre nom de variable age pointe vers 0x1001
0x1001
地址,并且输出了0x0001
adresse, et 0x0001
Juste comme ça.
Remarque :
上述age指向就是地址0x1001
0x1001
。
但是我们在fmt.Println("我今年:",age,"岁")
。
但是我们在fmt.Println("我今年:",age,"岁")
打印时,我们打印的是地址里面的
值。同理,们在赋值,交换变量时,还是是地址里面的
值。
例如:
🎜上述代码内存分配图。🎜🎜🎜🎜🎜
age2 demandera à nouveau une adresse pour stocker la valeur de l'âge de 18 ans.
Parfois, quelqu'un peut demander, samedi, existe-t-il une telle situation ? Ils désignent tous les deux le même souvenir en même temps. N'est-ce pas plus économe en mémoire ?
Résultat : Bien sûr, nous parlerons de cette situation plus tard. Il suffit de la comprendre maintenant, étape par étape.
Conclusion
Le nom de la variable pointe vers l'adresse mémoire .
Lorsque nous attribuons une valeur, ou lorsque nous opérons des variables telles que l'impression, nous opérons sur la valeur de l'adresse .
Ce qui précède est déjà très long. Peut-être avez-vous un peu le vertige, alors cet article se termine ici.
Si vous rencontrez des problèmes de tâche pendant l'opération, n'oubliez pas de laisser un message ci-dessous et nous résoudrons le problème dans les plus brefs délais.
Je suis codeur sur Zhouba. Si vous pensez que c'est bien, n'oubliez pas de lui donner un like.
Merci d'avoir regardé.
Si vous rencontrez des problèmes pendant l'opération, n'oubliez pas de laisser un message ci-dessous et nous résoudrons le problème dans les plus brefs délais.
Dites aux autres avec le sourire que je suis meilleur aujourd'hui qu'hier et que je serai le même à l'avenir.
Si vous pensez que l'article est bon, n'oubliez pas d'aimer et de laisser un message pour nous soutenir . Merci d'avoir lu. Si vous avez des questions, veuillez laisser un message ci-dessous~
Si vous souhaitez en savoir plus sur Python, vous pouvez vous référer au site d'apprentissage : http://pdcfighting.com/, cliquez pour lire. le texte original, vous pouvez y aller directement~
---------------- --- Fin ------- ---- Recommandations pour des articles passionnants des numéros précédents : Un article avec Vous comprenez les bases de la programmation réseau en langage GoLa structure de base du langage Go (hiver) Un article vous amènera à comprendre les bases de la concurrence (canal) en langage Go Bienvenue à tousJ'aime, Laissez un message, forward, repost, Merci à tous pour votre compagnie et votre soutien Si vous souhaitez rejoindre le groupe d'apprentissage Go, veuillez répondre en arrière-plan【Rejoignez le groupe 】 Des milliers de rivières et de montagnes sont toujours le même amour, cliquez sur【 Je regarde】D'accord
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!