当前位置:网站首页>La Fondation n'est pas assez solide pour secouer la montagne
La Fondation n'est pas assez solide pour secouer la montagne
2022-07-22 08:41:00 【Populus euphratica dans le désert】
Page d'accueil personnelle:Bienvenue à tous.——>Populus euphratica dans le désert
Mesdames et messieurs.,C'est magnifique.
Si vous pensez que l'article vous aidera
Peut soutenir les blogueurs en un clic et trois connexions
Chaque fois que tu t'en soucies, c'est ce qui me motive.
![]()
:Points saillants de la période en cours:Question de brosse de boeuf《2.》
J'espère que tout le monde se sent heureux chaque jour d'étudier et de travailler.
Question de brosse de boeuf
Un..Arguments et paramètres formels
2.. Qu'est - ce qu'un pointeur vide ?
Trois.constModifier la variable
Quatre.Analogique négatif
Cinq. Les variables globales et l'effet de la modification des conditions de cycle
Six.Expression virgule
Sept:sizeof Et le nom du tableau et Relation entre le tableau et le pointeur
Un..Arguments et paramètres formels
Regardez le Code.,Pourquoi les résultats??
void fun(char* p) { p = p + 1; } int main() { char a[] = { '1', '2', '3', '4' }; fun(a); printf("%c\n", *a); return 0; }
Analyse d'abord:
Parmi euxpEst une variable temporaire,ChangementpÇa ne changera pasaLe contenu de.
Regardez le schéma:
![]()
![]()
Nous pouvons voir,p La valeur de a changé ,Maisa Le contenu n'a pas changé , C'est un code typique pour les relations paramétriques et paramétriques , Où la formation d'un cadre de pile peut être vue plus en détail pour comprendre ——》Cadre de pile de fonctions
2.. Qu'est - ce qu'un pointeur vide ?
Qu'est - ce qu'un pointeur vide ? Lequel des éléments suivants est correct ?
Regardons la photo.:
J'ai cette image ,NULLEn fait, c'est0Espace d'adresse.
Cette valeur ne peut pas être appelée ,Ne peut pas être utilisé directement.
En fait...NULLEssentiellement 0 Force à convertir en void * Valeurs définies après .
C'est comme ça qu'on écrit. ,C'est bon aussi(Très peu recommandé):
Il n'y a pas d'avertissement , C'est une bonne affectation (Très peu recommandé).
Trois.constModifier la variable
constModifier la variable:
int b; (1)const int *a = &b; (2)int const *a = &b; (3)int *const a = &b;
Et les deux codes suivants sont les mêmes ?
Tout d'abord, regardons constPoint de connaissance,constLors de la modification des variables, Comme si c'était * (Non référencé)Avant ou après,Si avant, Est que la valeur de la variable modificatrice ne peut pas être modifiée directement , Peut être modifié indirectement par un pointeur de premier niveau .
Si après, Est que l'adresse de la variable modificatrice ne peut pas être modifiée directement , Peut être modifié par un pointeur secondaire .
Pour plus de détails, voir————》constExplication
Quatre.Analogique négatif
On dirait un nouveau , Le problème de l'analogique négatif
int main() { int a = 5, b = -5; printf("%d,%d", a % (-4), b % (-4)); }
Il est recommandé de lire d'abord cet article ——》 Détails de la modélisation négative
Sinon, les concepts suivants ne sont pas très clairs ~
Voyons d'abord 5 %(-4)Ça pourrait être quoi??
Oui. -1.25, Comment arrondir ?InCLa langue est0Arrondi, Donc quotient est -1, Donc le reste est -1C'est bon..
De la même façon (-5)%(-4)Et alors??
Oui.1.25,CLangue par défaut 0 Arrondi, Donc le quotient est 1, Alors le reste est 1 C'est bon..
Cinq. Les variables globales et l'effet de la modification des conditions de cycle
Regardez le Code,Quels sont les résultats?:
#include <stdio.h> int i; void prt() { for (i = 5; i < 8; i++) printf("%c", '*'); printf("\t"); } main() { for (i = 5; i <= 8; i++) prt(); }
Un peu d'analyse,Tout d'abord, i Est une variable globale,Premier cycle,Entrée prt En fonction i = 5, Puis imprimez dans la fonction *No., En sortant de la fonction i Devient 8 C'est,En cours i++,C'est devenu 9 C'est bon.,FinmainFonctions.
Passons à l'image :
Six.Expression virgule
Regardons les expressions des virgules ~!
Premièrement, l'expression virgule est :
Expression virgule,- Oui.c Opérateur de virgule dans la langue ,Priorité la plus basse,Il relie deux équations ou plus,Calculer l'expression une par une de gauche à droite, La valeur de l'expression entière est la dernière ExpressionValeur de.
Premièrement:Tout d'abord,x = y = 8,Et puisx+yAucune valeur assignée, x+1C'est9.
La deuxième et la première sont les mêmes .
Troisièmement:x = 8,Et puisx +1Pas encore assigné,y = 8,En ce momentx+y Pour 18.
Quatrièmement:y = 8,y+1Aucune valeur assignée,x = y = 8,Et puis x + 1 Pour 9 .
Sept:sizeof Et le nom du tableau et Relation entre le tableau et le pointeur
Regardez le Code, La fonction renvoie le résultat ?
struct TEST_TYPE { int a; int b; }; int testSize(struct TEST_TYPE val[10]) { return sizeof(val); }
Nous pouvons voir, Est de créer d'abord une structure , Et les paramètres que nous passons sont un tableau de structures , Et puis nous utilisons sizeofCalculer la taille du tableau, En théorie, ça devrait être 40,Mais le résultat est4,Pourquoi??
Voici une explication détaillée Article sur la relation entre les tableaux et les pointeurs ——》 L'intimité du pointeur et du tableau
Bien que nous utilisions ici le paramètre Array pass , En fait val C'est déjà un pointeur , Nous calculons la taille du pointeur ,Bien sûr que 4 Un octet.
边栏推荐
- 原码一位乘法器
- Alibaba cloud technology expert haochendong: cloud observability - problem discovery and positioning practice
- How to add text before and after text in batch in Excel
- 量化交易日记-回撤分析-2021年02月6日
- 云安全日报220721:思科混合云运维管理解决方案发现执行任意命令漏洞,需要尽快升级
- excel 如何根据身份证号自动匹配性别代码
- Calculation of storage capacity and address space
- VS2022无法使用scanf的解决办法,‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instea
- Verilog——74HC194多功能双向移位寄存器
- Pytoch learning (I) Deep learning review and introduction to pytoch
猜你喜欢
随机推荐
存储容量与地址空间的计算
自学golang【3.1定义变量】使用var关键字定义变量,使用var()集中定义变量,省略int等关键字以及省略var关键字,用冒号:替代定义
R language & and & Precautions
Self study golang [3.4go language functions and pointers] define a function that returns one or more values. For the pointer of go language, the pointer cannot operate. For the parameter transmission
Calculation of storage capacity and address space
Write the first myshell program (computer experiment report II)
The difference and implementation of MyISAM and InnoDB in MySQL
8位补码booth一位乘法器
Vs2022 cannot use the solution of scanf, 'scanf': this function or variable may be unsafe Consider using scanf_ s instea
Continuously improve cognition, so as to reach the highest level of trading - stable profits (I)
编写第一个myshell程序(上机实验报告二)
不断提升认知,从而达到交易的最高级别——稳定盈利(二)
自学golang【3.8使用go语言实现寻找最长不含有重复字符的子串】练习代码
Verilog——74LVC161计数器
How to put the horizontal flashing cursor (_) in notepad++ Change to vertical flashing cursor style (|)?
阿里云技术专家郝晨栋:云上可观测能力——问题的发现与定位实践
The difference between RDB and AOF in the persistence mode of redis
verilog——74HC85四位数值比较器并扩展为16位数值比较器
NotePad++中如何把横向闪烁光标( _ )修改成竖向闪烁光标样式( | )?
STM32 Hal library SPI always reads FF. Solve the problem!