Faits :
A.
Par jugement du 2 mars 2018, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a condamné X._, pour infraction grave à la LStup (art. 19 al. 2 LStup), à une peine privative de liberté de quatre ans, sous déduction de 360 jours de détention avant jugement, a constaté que le prénommé a subi 24 jours de détention dans des conditions de détention illicites et a ordonné que 12 jours soient déduits de sa peine à titre de réparation du tort moral. Il a en outre ordonné son expulsion du territoire suisse pour une durée de huit ans.
B.
Par jugement du 23 août 2018, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a partiellement admis l'appel formé par X._ contre ce jugement et a réformé celui-ci en ce sens que le prénommé est condamné, pour infraction grave à la LStup (art. 19 al. 2 LStup), à une peine privative de liberté de trois ans, avec sursis portant sur 18 mois durant cinq ans, et que son expulsion du territoire suisse est ordonnée pour une durée de cinq ans. Elle a confirmé le jugement pour le surplus.
La cour cantonale a retenu les faits suivants.
B.a. X._ est né en 1980 au Nigéria, pays dont il est originaire. Il y a été scolarisé pendant 12 ans, puis y a travaillé. En 2002, il a quitté le Nigéria pour la Grèce, où il a rencontré A._, qui bénéficie d'une autorisation d'établissement en Suisse. X._ s'est marié en Grèce avant de gagner la Suisse en 2007. Il y a eu deux enfants, nés en 2006 et 2008, avant de se séparer de A._ en 2015 puis de divorcer. Ses enfants, de nationalités turque et nigériane, vivent avec leur mère en Suisse allemande. X._, de même que ses enfants, bénéficie d'un permis d'établissement en Suisse. Depuis la séparation, celui-ci a vu ses enfants chaque semaine jusqu'à son incarcération le 6 mars 2017. En détention, il a entretenu des conversations téléphoniques avec eux à raison de deux à trois fois par semaine.
Entre 2007 et 2014, X._ a travaillé dans la construction. De septembre 2014 à avril 2016, il n'a plus eu d'emploi et a perçu des indemnités de l'assurance-chômage. Il a ensuite travaillé entre juin et décembre 2016 puis, depuis février 2017, a bénéficié des prestations de l'assistance sociale.
Dans les rapports de détention, X._ était décrit comme une personne polie, ayant eu une attitude correcte envers le personnel carcéral et ses codétenus. Son casier judiciaire suisse fait état d'une condamnation, en 2015, pour violation grave des règles de la circulation routière.
B.b. Entre le 15 janvier et le 6 mars 2017, X._ s'est rendu à sept reprises à B._ afin d'aller chercher de la cocaïne destinée à la revente dans toute la Suisse. Il a transporté un total de 1'521,3 g de cocaïne, dont 732,5 g nets qui n'ont pas pu être livrés en raison de son interpellation. Ces stupéfiants ont pour le reste été livrés à divers individus à C._, D._, E._, F._ et G._. L'intéressé aurait reçu, pour l'ensemble de ces livraisons, au moins 1'000 francs. Ses activités ont porté sur un total de 642,49 g de cocaïne pure.
C.
X._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 23 août 2018, en concluant, avec suite de frais et dépens, à sa réforme en ce sens que son expulsion du territoire suisse n'est pas ordonnée. Il sollicite par ailleurs l'octroi de l'effet suspensif et le bénéfice de l'assistance judiciaire.
D.
Par courrier du 15 octobre 2018, le Président de la Cour de droit pénal a indiqué que le recours en matière pénale interjeté contre un prononcé d'expulsion déployait de lege un effet suspensif, de sorte que la demande d'effet suspensif était sans objet et qu'il n'y avait dès lors pas lieu de statuer sur celle-ci.
Considérant en droit :
1.
Le recourant soutient que son expulsion violerait les art. 66a CP, 5 et 13 Cst. ainsi que 8 CEDH.
1.1. Aux termes de l'art. 66a al. 1 let. o CP, le juge expulse de Suisse l'étranger qui est condamné notamment pour infraction à l'art. 19 al. 2 LStup, quelle que soit la quotité de la peine prononcée à son encontre, pour une durée de cinq à quinze ans. Selon l'art. 66a al. 2 CP, le juge peut exceptionnellement renoncer à une expulsion lorsque celle-ci mettrait l'étranger dans une situation personnelle grave et que les intérêts publics à l'expulsion ne l'emportent pas sur l'intérêt privé de l'étranger à demeurer en Suisse. A cet égard, il tiendra compte de la situation particulière de l'étranger qui est né ou qui a grandi en Suisse.
1.2. En l'espèce, le recourant a commis une infraction (infraction à l'art. 19 al. 2 LStup) qui tombe sous le coup de l'art. 66a al. 1 let. o CP. Il remplit donc a priori les conditions d'une expulsion, sous la réserve d'une application de l'art. 66a al. 2 CP, voire également des normes de droit international.
1.3. L'art. 66a al. 2 CP est formulé comme une norme potestative ("Kannvorschrift"), en ce sens que le juge n'a pas l'obligation de renoncer à l'expulsion, mais peut le faire si les conditions fixées par cette disposition sont remplies. Ces conditions sont cumulatives. Afin de pouvoir renoncer à une expulsion prévue par l'art. 66a al. 1 CP, il faut donc, d'une part, que cette mesure mette l'étranger dans une situation personnelle grave et, d'autre part, que les intérêts publics à l'expulsion ne l'emportent pas sur l'intérêt privé de l'étranger à demeurer en Suisse (arrêts 6B_724/2018 du 30 octobre 2018 consid. 2.3.1; 6B_296/2018 du 13 juillet 2018 consid. 3.2; 6B_506/2017 du 14 février 2018 consid. 1.1 et les références citées). Le fait que la clause de rigueur soit une norme potestative ne signifie pas que le juge pénal pourrait librement décider d'appliquer ou non l'exception de l'art. 66a al. 2 CP. Le juge doit faire usage du pouvoir d'appréciation qui lui est conféré par une norme potestative dans le respect des principes constitutionnels. S'il devait refuser de renoncer à l'expulsion alors que les conditions de la clause de rigueur sont remplies, le principe de proportionnalité ancré à l'art. 5 al. 2 Cst. serait violé. Le juge doit ainsi renoncer à l'expulsion lorsque les conditions de l'art. 66a al. 2 CP sont réunies, conformément au principe de proportionnalité (arrêt 6B_724/2018 précité consid. 2.3.1).
1.4. La loi ne définit pas ce qu'il faut entendre par une "situation personnelle grave" (première condition cumulative) ni n'indique les critères à prendre en compte dans la pesée des intérêts (seconde condition cumulative).
En règle générale, il convient d'admettre l'existence d'un cas de rigueur au sens de l'art. 66a al. 2 CP lorsque l'expulsion constituerait, pour l'intéressé, une ingérence d'une certaine importance dans son droit au respect de sa vie privée et familiale garanti par la Constitution fédérale (art. 13 Cst.) et par le droit international, en particulier l'art. 8 CEDH (arrêts 6B_724/2018 précité consid. 2.3.2; 6B_371/2018 du 21 août 2018 consid. 2.5).
La cour cantonale a considéré que le recourant pouvait se prévaloir d'un droit au respect de sa vie familiale au sens de l'art. 8 par. 1 CEDH, en raison de la présence en Suisse de ses deux enfants. On ignore, à la lecture du jugement attaqué, si le recourant entretient avec ceux-ci un lien particulièrement fort au sens de la jurisprudence, s'il bénéficie d'un droit de garde ou de visite ou encore s'il leur verse régulièrement des prestations financières (cf. ATF 144 I 91 consid. 5 p. 96 ss; 143 I 21 consid. 5.3 p. 27 s.). Quoi qu'il en soit, à supposer que le recourant puisse se prévaloir d'un droit découlant de l'art. 8 par. 1 CEDH, son expulsion pourrait de toute manière être confirmée au regard de l'art. 8 par. 2 CEDH (cf. consid. 1.5.2 infra).
1.5. Il convient de déterminer si l'intérêt privé du recourant à demeurer en Suisse pourrait l'emporter sur les intérêts publics présidant à son expulsion. Cet examen implique en particulier de déterminer si la mesure litigieuse respecte le principe de la proportionnalité découlant des art. 5 al. 2 Cst. et 8 par. 2 CEDH (cf. arrêts 6B_724/2018 précité consid. 2.5; 6B_371/2018 précité consid. 3.2).
1.5.1. La cour cantonale a exposé que le recourant était arrivé en Suisse en 2007, avait obtenu une autorisation de séjour par son mariage puis une autorisation d'établissement. L'intéressé y avait certes travaillé mais avait également connu des périodes de chômage et émargeait à l'aide sociale. Il n'avait pas créé de liens sociaux et professionnels spécialement intenses avec la Suisse et n'y était pas particulièrement bien intégré. Les infractions commises par le recourant étaient graves et la quantité de cocaïne impliquée importante. Celui-ci avait contribué à mettre sur le marché une très grande quantité de stupéfiants.
Le recourant était âgé de 37 ans et vivait en Suisse depuis 11 années. Il conservait des liens avec son pays natal, quitté en 2002 pour la Grèce, dans lequel il avait passé son enfance et sa scolarité et où vivaient encore ses frères et soeurs. En Suisse, le recourant avait appris l'allemand et donné satisfaction à ses employeurs. Il était en bonne santé.
1.5.2. En l'espèce, les intérêts présidant à l'expulsion du recourant sont importants, dès lors que celui-ci s'est - quoique sur une courte période - livré à un important trafic de stupéfiants. A cet égard, on rappellera que la Cour européenne des droits de l'Homme estime que, compte tenu des ravages de la drogue dans la population, les autorités sont fondées à faire preuve d'une grande fermeté à l'encontre de ceux qui contribuent à la propagation de ce fléau (cf. arrêts CourEDH K.M. c. Suisse du 2 juin 2015 [requête no 6009/10] § 55; Dalia c. France du 19 février 1998, Recueil CourEDH 1998-I 76 § 54). Par ailleurs, il convient de relever que la peine privative de liberté à laquelle a été condamné le recourant dépasse largement une année, ce qui pourrait permettre une révocation de son autorisation d'établissement sur la base des art. 62 al. 1 let. b et 63 al. 1 let. a LEtr (cf. l'arrêt publié aux ATF 139 I 145 consid. 2.1 p. 147, selon lequel constitue une "peine privative de liberté de longue durée" au sens de l'art. 62 al. 1 let. b LEtr toute peine dépassant un an d'emprisonnement).
Le recourant est arrivé en Suisse à l'âge adulte et y a passé deux fois moins d'années qu'au Nigéria. Son intégration en Suisse ne s'avère pas particulièrement réussie. L'intéressé émarge à l'aide sociale et ne revendique aucune relation sociale ou professionnelle particulière, quand bien même il a - par le passé - donné satisfaction à ses employeurs. Rien ne permet de considérer que le recourant se réintégrerait plus difficilement au Nigéria, où il possède encore de la famille et où il a déjà travaillé par le passé, qu'en Suisse. Le temps écoulé depuis la commission des infractions n'est pas important. Il ressort par ailleurs du jugement attaqué que le comportement du recourant durant cette période a été bon, en tout cas pendant sa détention.
En définitive, compte tenu de la gravité des infractions sanctionnées en matière de stupéfiants et de la médiocre intégration du recourant en Suisse, l'intérêt public à l'expulsion l'emporte sur l'intérêt privé de l'intéressé à demeurer en Suisse. La réintégration au Nigéria, pays dans lequel celui-ci a passé la majeure partie de sa vie et avec lequel il conserve des liens culturels et familiaux non négligeables, ne sera pas particulièrement difficile. Il n'apparaît pas que le recourant s'y trouvera dans une situation sensiblement plus défavorable ni qu'il disposerait, en Suisse, de meilleures chances de réinsertion sociale. L'expulsion portera certes une atteinte aux relations entre le recourant et ses enfants - avec lesquels l'intéressé ne fait pas ménage commun -, mais il convient de relever que cette mesure reste d'une durée limitée - soit cinq années - et ne l'empêchera pas d'entretenir un contact avec ceux-ci par le biais des moyens de communication modernes (cf. ATF 144 I 91 consid. 5.1 p. 97).
Dans ces circonstances, l'expulsion s'avère conforme au principe de la proportionnalité.
1.6. La seconde condition pour l'application de l'art. 66a al. 2 CP n'étant pas réalisée, la cour cantonale n'a pas violé le droit fédéral, constitutionnel ou international en ordonnant l'expulsion du recourant pour une durée de cinq ans.
2.
L'examen des conditions d'application de l'art. 66a al. 2 CP ayant notamment impliqué un contrôle de la proportionnalité de la mesure ainsi que la prise en compte, dans une société démocratique, du droit du recourant au respect de sa vie privée (cf. arrêts 6B_724/2018 précité consid. 3; 6B_371/2018 précité consid. 4), les griefs de ce dernier portant spécifiquement sur une éventuelle violation des art. 5 et 13 Cst. ainsi que 8 CEDH n'ont plus d'objet, l'expulsion prononcée ne portant pas atteinte à ces dispositions.
3.
Le recourant soutient encore que son expulsion porterait atteinte à l'art. 9 de la convention des Nations Unies du 20 novembre 1989 relative aux droits de l'enfant (CDE; RS 0.107).
Aucun grief portant sur cette disposition n'a été traité dans le jugement attaqué, sans que le recourant ne se plaigne d'un déni de justice à cet égard. Partant, le grief est irrecevable, faute d'épuisement des instances cantonales (cf. art. 80 al. 1 LTF). Au demeurant, le recourant ne saurait déduire aucun droit à demeurer en Suisse des dispositions de la CDE (cf. ATF 140 I 145 consid. 3.2 p. 148; 139 I 315 consid. 2.4 et 2.5 p. 320 ss; cf. aussi l'arrêt 6B_770/2018 du 24 septembre 2018 consid. 3).
4.
Le recours doit être rejeté dans la mesure où il est recevable. Comme il était dénué de chances de succès, la demande d'assistance judiciaire doit être rejetée (art. 64 al. 1 LTF). Le recourant, qui succombe, supportera les frais judiciaires (art. 66 al. 1 LTF), dont le montant sera fixé en tenant compte de sa situation financière, laquelle n'apparaît pas favorable.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 7 novembre 2018
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa